二维数组与指针的指针有何区别
2个回答
展开全部
最大的区别是数组不能被直接赋值,比如二维数组a[3][3],b[3],你不能这样赋值:a[0]=b;
但指针可以。
其次,就像一楼说的,数组一开始就被分配特定空间,指针值赋予一个地址。
最后,数组分配的是一段连续的空间,int a[3][3]则a[0][0],a[0][1],a[0][2],a[1][0]...a[2][2]是一段连续的,数组a的首地址跟它的成员是连在一起的(至少间距一定),而指针int *p=a[0],p的地址不一定跟a[0]相邻。
推荐一本书《[你必须知道的495个C语言问题]人民邮电出版社》
但指针可以。
其次,就像一楼说的,数组一开始就被分配特定空间,指针值赋予一个地址。
最后,数组分配的是一段连续的空间,int a[3][3]则a[0][0],a[0][1],a[0][2],a[1][0]...a[2][2]是一段连续的,数组a的首地址跟它的成员是连在一起的(至少间距一定),而指针int *p=a[0],p的地址不一定跟a[0]相邻。
推荐一本书《[你必须知道的495个C语言问题]人民邮电出版社》
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询