网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

如何理解C语言中指针和数组名的区别与联系

时间:2024-11-15 13:07:00

1、数盲褓梆尺组名是个指针常量,保存的是数组的首地址,即“数组第一个元素的起始地址”,为什么这么说呢?因为数组的元素可能是整形,字符型,假如是整形,那么一个元素占4个字节,而每个字节都对应一个地址,那么数组名保存的地址是哪个呢?是第一个元素的第一个字节的地址。

如何理解C语言中指针和数组名的区别与联系

2、既然数组名是指针了,那么可不可以将数组名赋给一个指针?然后用这个指针来操作整个数组呢?答案是肯定的。

如何理解C语言中指针和数组名的区别与联系如何理解C语言中指针和数组名的区别与联系

3、数组名是指针,可以使用a[i]这样的操作,那么同类型指针p可不可以使用p[i]来代替 *(p+i) 呢?答案是肯定的。

如何理解C语言中指针和数组名的区别与联系

4、解释一下,指针进行p+1操作对于不同类型的p是不同的,具体看存储不同类型的数据需要多少个字节。两个相同类型的指针只能进行减操作;相加,相乘和相除是没有意义的。

如何理解C语言中指针和数组名的区别与联系

5、相信大家已经知道了数组名和指针的相同的地方;下面说下不同的地方:数组名相当于 类型* const p;普通指针是 类型* p;也就是说,数组名a只有“可读权限”,没有“可写权限”,是指针常量。a++; a = p; 等等均是不可以的。而普通指针是可以的。

如何理解C语言中指针和数组名的区别与联系
© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com