char **p,a[20][10];p=a在以后的程序中会出现什么问题?为什么?
C里面的指针能访问系统的所有内存么?那个同一个进程里面的一个模块的指针操作能不能破坏其他模块的内存?WHY?
a的类型是char (*)[10];与p的类型并不相同p=a;本身就很成问题,就别考虑什么"以后"了
指向指针的指针和二维数组这样运用虽然不能实现内容的复制,但是这样用法是把a的地址给了p是没问题的,论坛前面有张帖子说到P=A不可取,我不知道原因是什么。
当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针如:a[]可以退化为 *a ;a[][]可以退化为 **p,在类型上是不会有问题的,问题是程序在以为会有什么问题。何况对于 A[][],其中数组名A就是二维的数组的起始地址。
斑竹把我的标题改了啊?怎么不回答一下我的问题呢?谢谢了
谢谢各位的帮忙,我有点明白了,在这里a不是二级指针,我一直都以为他是个二级指针所以类型不相符,现在我虽然知道这一点,但是还是理解不了为什么他是个二级指针。
我以前的思路是这样的a[0][0]可以表示成指针形式**a;那么a就是一个二级指针。但是实际上a,a[0],&a地址是一样的,把a[0][0]表示成**a也是对得,我错在那里了。
这里谢谢斑竹和三楼的朋友