当前位置: 代码迷 >> C语言 >> [求助]二级指针与二维数组的联系与区别
  详细解决方案

[求助]二级指针与二维数组的联系与区别

热度:152   发布时间:2006-06-08 13:16:18.0
[求助]二级指针与二维数组的联系与区别

char **p,a[20][10];
p=a在以后的程序中会出现什么问题?为什么?

C里面的指针能访问系统的所有内存么?那个同一个进程里面的一个模块的指针操作能不能破坏其他模块的内存?WHY?

搜索更多相关的解决方案: 指针  联系  

----------------解决方案--------------------------------------------------------
这里是C.不是C++!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-08 05:27:32
anthony634

来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
  得分:0 
我C++那个删了,那多问一个,C里面的指针能访问系统的所有内存么?那个同一个进程里面的一个模块的指针操作能不能破坏其他模块的内存?WHY?
----------------解决方案--------------------------------------------------------
以下是引用穆扬在2006-6-8 13:27:32的发言:

a的类型是
char (*)[10];
与p的类型并不相同
p=a;本身就很成问题,就别考虑什么"以后"了

指向指针的指针和二维数组这样运用虽然不能实现内容的复制,但是这样用法是把a的地址给了p是没问题的,论坛前面有张帖子说到P=A不可取,我不知道原因是什么。


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-08 05:45:35
anthony634

来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
  得分:0 

当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针如:a[]可以退化为 *a ;a[][]可以退化为 **p,在类型上是不会有问题的,问题是程序在以为会有什么问题。何况对于 A[][],其中数组名A就是二维的数组的起始地址。


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-08 09:48:40
anthony634

来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
  得分:0 

斑竹把我的标题改了啊?怎么不回答一下我的问题呢?谢谢了


----------------解决方案--------------------------------------------------------
以下是引用anthony634在2006-6-8 18:32:55的发言:

斑竹把我的标题改了啊?怎么不回答一下我的问题呢?谢谢了

论坛不是版主的论坛,是所有C爱好者的家园.

任何求助者无权指名道姓地请求某某某帮助.

请尊重跟帖者的劳动,更何况他们答得很好!


----------------解决方案--------------------------------------------------------
  相关解决方案