数组名与数组名前加取地址符
代码:
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<a<<"\t"<<&a<<endl;
cout<<a+1<<"\t"<<&a+1<<endl;
return 0;
}
结果:
我们知道数组名与数组名取地址所得到的地址都是一样的,由第一行的输出可以验证这一结论。那么如果都在这基础上加上指针运算呢,一开始我也觉得结果是相同的,但事实是让我懵逼的。由第二行输出可以知道a+1后指针指向的是组的第二个元素,而&a+1后指针指向的是整个数组内存空间的末尾。这是为什么呢?这到底是a的心灵的扭曲还是&a道德的沦丧?
言归正传。。
由于数组和指针的关系,a相当于一个指针,指向的是第一个元素,也就是传说中数组的首地址。此时这个指针的步长是数组元素类型所占的字节数,在此为4B。而&a这货代表的不是a这个变量的地址,而是数组元素的地址,它代表整个数组!!所以&a这个指针的步长是整个数组所占的字节数!!也就是说a的类型是int[10],&a的类型是int(*)[10],是个指向int[10]数组的指针,&a[0]的类型是int*。
数组名与数组名前加取地址符相关推荐
- 对字符数组输入输出数组名是否加取地址符的一些理解
字符数组名的两个含义: 定义了字符型数组char name[10].name有两个含义: 一个是代表着name这个数组第一个位置的地址,也就是name[0]的地址.可以说name就等价于&na ...
- 数组名加取地址符的理解
--------------------------------------------- -- 时间:2019-04-15 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...
- C语言中 指针变量 取地址符的用法 *指针变量名的用法
文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...
- 【重温经典C语言】~c语言中%x、%c、%d、%x等等等、c语言取地址符的作用、C语言中的 联合体
本章目录: 1. c语言中%x.%c.%d.%x等等等 2. c语言取地址符&的作用 3. 了解 C语言中的 联合体 3.1 什么是联合体? 3.2 定义 3.2.1 举例 3.3 初始化联合 ...
- 变量与指针、取值符与取地址符
变量与指针.取值符与取地址符 一.基础知识 二.实例 其他 by HPC_ZY 也是偶然,在一个项目中需要多次交换二维数组中的值,逐个操作确实耗时,就想能不能利用指针操作快速交换.成功后写此文,记录分 ...
- 取地址符和解引用符的区别_(&)和解引用(*)运算符的地址以及C中的指针...
取地址符和解引用符的区别 Here, we are discussing about the two most useful operators with the pointers, why and ...
- c语言函数变量地址符,C语言中取地址符做函数形参?—— 引用的讨论
取地址符&做函数形参? C语言强大且危险 引入 这个问题花去了整整一天的研究. 先看一段严蔚敏的<数据结构>中栈的例程: 这里面的&S第一遍看的时候想当然的认为是取了SqS ...
- C语言加取址符的作用,C语言中指针和取地址符的关系
一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...
- C++ 中的:“引用” 和“取地址符”的区别和作用
引用 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. &作为引用的时候,必须在定义时候就进行初始化,若不进行初始化则会编译报错. int N; int &r ...
- c语言地址符作用,C语言中指针和取地址符的关系
一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...
最新文章
- 基于尺寸划分的RGB显著物体检测方法
- go 1.4支持Android的说明(译文)
- 转载 mysql 数据库优化配置实例
- C# Socket与实现
- python用pil图像放大缩小_python使用PIL缩放网络图片并保存的方法
- C指针原理(38)-C快速入门
- Design Patterns之Adapter Pattern总结
- 精美jQuery插件及源码 前端开发福利
- ftl不存在为真_科学网—世界上第一个真正的超光速实验 - 张操的博文
- 中科院分区和JCR分区查询
- 蚂蚁课堂视频笔记+笔记对应源码+思维导图下载地址
- (BISM)FTP搜索引擎BLOG开通了,专门交流搜索引擎技术
- 微信公众号图片转pdf
- java最简单的打印日历表_java实现打印日历
- win10的当前桌面壁纸保存位置
- MOSFET的半桥驱动电路设计要领详解
- 写作技巧~100段作文排比句(61-80段),考试一定用得上,赶紧收藏!
- PropertyBeanUtils.copyProperties(dest, orig)
- PLSQL12.0.7的下载、安装及使用教程
- 线性代数笔记3.2向量间的线性关系(二)
热门文章
- html5给文字添加拼音,word怎么为文字添加拼音
- python常用数学符号_ML-常用数学符号(示例代码)
- Iterator中的 FailFast FailSafe【学习笔记】
- 计算机的开机自检由什么程序完成,开机自检,教您怎么取消电脑上的开机自检...
- 人工智能迅猛发展,如何应对避免失业?
- 他25岁进贝尔实验室,32岁提信息论,40岁办达特茅斯会议,晚年患上阿兹海默 | 人物志...
- U盘插入电脑识别不出来,如何解决?
- git里面的文件怎么删不掉_彻底删除git中没用的大文件
- 低代码开发平台+KM知识文档管理系统搭配的好处
- 圆形时间html,html5 canvas实现圆形时钟代码分享