数组名a和&a的区别
来源:互联网 发布:linux菜鸟私房菜 编辑:程序博客网 时间:2024/05/19 18:48
1、a表示&a[0],也即对数组首元素取地址,a+1表示首地址+sizeof(元素类型)。
2、&a虽然值为数组首元素地址,但类型为:类型 (*)[数组元素个数],所以&a+1大小为:首地址+sizeof(a)。
&a取得是整个数组的地址!既数组名取地址等价于对数组取地址。
在学习c语言的过程中我们可以发现一个一维数组的的数组名往往具有两层含义:
*作为数组名代表整个数组
*作为指针代表数组的首元素地址(因此很容易把数组和指针混为一谈)。
当数组名作为首元素的地址时:
我们可以发现数组名等价于一个指向数组首地址的指针。
当数组名代表整个数组的时候是在以下两种情况:1.在用sizeof关键字求数组所占的内存大小。2.对数组名取地址时代表整个数组的首地址。
由此可见:当用sizeof求数组的内存长度时,数组名所代表的是整个数组,所以长度=5*4=20;
在用sizeof求&arr的内存长度时,他所求的空间长度是指向整个数组的地址的占用空间长度;
当对数组名取地址时&arr+1所占的地址与&arr所占的地址相差20;而arr+1所占的地址与arr所占的地址相差4;
阅读全文
0 0
- 数组名a和&a的区别
- 数组名a和&a 的区别
- 数组名a和&a的区别
- 数组名a和&a的区别
- 数组名a和&a的区别
- 数组名a+1和&a+1的区别
- C++数组名a和&a的区别
- C++数组名a和&a的区别
- 数组名a与&a的区别
- 数组名a与&a的区别
- 数组名 a 与&a的区别
- 数组名a和&a的不同
- a为数组名,a与&a的区别
- a为数组名,a与&a的区别
- 数组a[],a和&a的区别
- char a[]和char *a的比较,数组名,数组首地址,a,&a,&a[0]
- char a[]和char *a的比较,数组名,数组首地址,a,&a,&a[0]
- char a[]和char *a的比较,数组名,数组首地址,a,&a,&a[0]
- java反射机制
- php编辑器notepad++ 推荐一款非常好看主题和字体
- sdnu-并查集-weeklyexam ——H
- vue中calss 动态绑定实现下拉列表
- Stepper Motor Driving Patterns
- 数组名a和&a的区别
- leetcode解题方案--061--RotateList
- python学习笔记 第七章(二)
- IA-32 Intel手册学习笔记(三)任务切换
- sdnu-并查集-weeklyexam ——I
- 告别session jwt使用初尝试
- 448FindAllNumbersDisappearedInAnArray
- 计算机网络中,16位校验和的实现
- ACM 比赛如何正确开局、队员如何分工、如何把状态调整到最佳?