IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> (c语言)数组是一种特殊的指针? -> 正文阅读

[C++知识库](c语言)数组是一种特殊的指针?

? ? ? ? C语言学习时,学到数组与指针的联系时,我们讲到数组是一种特殊的指针,特殊在哪呢?

? ? ? ? 数组在定义时,如int a[10],即开辟了特定的内存空间来存放数组中的元素,数组起到一个容器的作用,可通过访问容器的地址给容器内的东西赋值或修改,容器本身的地址是不可修改的,即理解为int* const p=a。

? ? ? ? 但要注意,上式中的a(数组名)可作为数组a中的首元素地址使用,那么&a又表示何种意义?看以下代码

    int a[10];
	int* p=NULL;
	p=a;
	printf("%d %d %d\n",sizeof(a),sizeof(&a),sizeof(p));
	printf("%d %d %d %d",a,&a,&a+1,a+1);

输出结果为:

40 8 8
6487536 6487536 6487576 6487540
--------------------------------
Process exited after 0.03779 seconds with return value 31
请按任意键继续. . .
//64位编译器
40 4 4
6422132 6422132 6422172 6422136
--------------------------------
Process exited after 0.104 seconds with return value 31
请按任意键继续. . .
//32为编译器

? ? ? ?

????????如何解释a与&a的区别?

? ? ? ? a既表示数组名,又有首元素地址的含义;&a则是数组a的首地址;第一行输出40 8 8, 40为整个数组的字节长度,后续的两个8都是指针(地址)的字节长度,在64位编译器下应为8, 32位则为4;

????????第二行输出作的是指针的加减法;分析:age==&a[0],只表示数组首元素的地址,&age 则认为是取了整个数组的首地址,这两个地址是相等的。但地址作加减运算时,其是有单位的,( 胡凡 曾磊的《算法笔记》中描述:指针作加减法,其指向的基类型为单位,计算结果为单纯的字节地址运算后乘上或除以其单位的字节), a+1的单位(a替换成&a[0]来看)是一个int字节的长度,&age+1的单位是一个数组的长度 。

? ? ? ? 由此可见,数组和指针有联系又有区别,数组有确定的连续的内存空间分配,而指针变量只是指向某一地址的变量。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:43:38  更:2021-07-14 10:44:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 1:44:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码