99问答网
所有问题
c语言中指针*p中的p和数组a[10]中的a有什么区别…在用法上和意义上…求答案
如题所述
举报该问题
推荐答案 2013-11-04
二重指针,首先你要有数组的概念,数组就是一片连续的存储地址,一维的情形用一个指针来实现对数组中数据的引用。如 int a[10];这句话实际是在内存中申请了10个连续的地址块,每块地址可以用来存储一个int型数据。而a就是用来引用数据的指针,比如a[2],实际就引用了第三块地址(从0开始)。 而二维数组和一维的原理是一样的也是连续的地址块,只是引用的方式不一样,术语上讲就是二重指针;int a[3][3],开辟了9个int的连续地址,a不能直接引用其中的某一块a,你可以把它看做是矩阵,a[0]是指向第一行,第一行可以看做数组,那么a[0]就是一维数组的指针,a[0][1]就表示第一行那个一维数组中的第二个元素;类似a[1][2]就表示第二行那个一维数组中的第三个元素。 这块内容要画出内存图就能更好的理解了,你自己试着画一画。其实很简单不管是几维的数组他们的物理存储都是连续的一块内存,只是解释方式不同而已。重要的不是他们的实际的物理存储,而是他们的逻辑结构(在程序中你要怎么去解释)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/OtOWjjeevXBBBtjOWv.html
其他回答
第1个回答 2013-11-05
p 是变量,是可以变化的,比如可以 p++, p=a, p= NULL;
a 是常量,不能变化,你不可以 a++, a = NULL; 这些都不允许。
用的时候,两者差别不大,比如 p[0] = *a; 是可以的,没问题。
相似回答
大家正在搜
相关问题
C语言里面指针,*p=&a和p=&a,有什么区别
C语言指针问题:在定义指针时*p=a和p=a有区别吗?
c语言中*p=a与*p=&a有什么区别
c语言中*p=&a和p=&a有什么区别
a是数组名p是指针那*p=a和p=a有什么区别
c语言的指针部分 *p与p区别
在c语言中,int *p,a; *p=&a,和p=&a有什么...
C语言中,p=&a 那么*p与a的区别是什么?