在C语言中,数组名是一个特殊的指针吗?
答案:3 悬赏:70 手机版
解决时间 2021-03-21 16:37
- 提问者网友:两耳就是菩提
- 2021-03-21 04:27
在C语言中,数组名是一个特殊的指针吗?
最佳答案
- 五星知识达人网友:蓝房子
- 2021-03-21 05:01
数组名是一个地址常量,你可以把它看成是一个常量指针,即不能改变它的指向的指针,像这样的 int a; int * const p=&a; p就是一个常量指针,它只能指向a,你在程序中不能在去更改了,如果这样 int b;p=&b;编译时是无法成功的,数组名就类似于这里的p,是一个固定的地址,也可以说以一个常量指针。以上是我的理解,不对之处还望楼下高人指正
全部回答
- 1楼网友:十年萤火照君眠
- 2021-03-21 08:12
1、二维数组名不是二级指针,它只是一个比较特殊的常量指针。包括三维,四维,乃至n维数组也是如此。只要是数组,那么它就是一个普通的常量指针。
2、二级指针p也可以解释为指针的指针,即p内保存的值实际上还是一个指针,计算:
*p的值实际上是一个指针值,那么 *(*p)即二级指针指向的最终值。
对于二维数组a[2][2],a也是一个地址,并且这个值也等于a[0],也等于a[0[0]的地址,即&a[0][0],由此看来对a取地址的值是一个变量值(不是指针),所以a并不是一个二级指针,最多算一个一级指针。
- 2楼网友:逐風
- 2021-03-21 06:33
是啊比如a[] 那么 a就代表数组的首地址 代表这个数组的指针
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯