我们知道数组名就是指针, 可是两者有什么统一性呢, 有什么联系呢?可不成以互相转换呢?下面我就来具体地说一说 。
需要这些哦
一台电脑
C说话的编译器
方式/
1数组名是个指针常量, 保留的是数组的首地址, 即“数组第一个元素的肇端地址”, 为什么这么说呢?因为数组的元素可能是整形, 字符型, 假如是整形, 那么一个元素占4个字节, 而每个字节都对应一个地址, 那么数组名保留的地址是哪个呢?是第一个元素的第一个字节的地址 。
文章插图
2既然数组名是指针了, 那么可不成以将数组名赋给一个指针?
然后用这个指针来操作整个数组呢?
谜底是必定的 。
文章插图
文章插图
3数组名是指针, 可以利用a[i]这样的操作, 那么同类型指针p可不成以利用p[i]来取代 *(p+i) 呢?
谜底是必定的 。
文章插图
4诠释一下, 指针进行p+1操尴尬刁难于分歧类型的p是分歧的, 具体看存储分歧类型的数据需要几多个字节 。
两个不异类型的指针只能进行减操作;相加, 相乘和相除是没有意义的 。
文章插图
5相信大师已经知道了数组名和指针的不异的处所;
【如何理解C语言中指针和数组名的区别与联系】下面说下分歧的处所:
数组名半斤八两于 类型* const p;
通俗指针是 类型* p;
也就是说, 数组名a只有“可读权限”, 没有“可写权限”, 是指针常量 。
a++; a = p; 等等均是不成以的 。
而通俗指针是可以的 。
文章插图
注重事项注重区分指针和数组名的区别和联系
以上内容就是如何理解C语言中指针和数组名的区别与联系的内容啦, 希望对你有所帮助哦!
推荐阅读
- 苹果手机如何恢复通讯录
- vivo手机怎么关机重启(vivo手机如何关机重启)
- 茶盘上的那些茶宠,该如何养又有哪些典故来由?
- 紫砂壶老玩家教你,作为新手如何买壶
- 紫砂“手工壶”的概念,如何去理解呢
- ps如何压缩图片大小
- 如何将我们自己的计划真正落实到行动上去?
- 红掌花语:大展宏图,热情,热血
- 如何将HTML页面改为HTML5页面
- 如何正确使用mutex锁