指针 | 数组 |
---|---|
保存数据的地址,任何存入指针变量 p 的数据都会被当作地址来处理 | 保存数据,数组名 a 代表的是数组首元素的首地址,&a 是整个数组的首地址 |
间接访问数据,首先取得指针变量 p 的内容,把它当做地址,然后从这个地址提取数据或向这个地址写入数据。 指针可以以指针的形式访问 "*(p+i)" 也可以以下标的形式访问 "p[i]"。但其本质都是先取 p 的内容后加上“i*sizeof(类型)”字节作为数据的真正地址。 |
直接访问数据,数组名 a 是整个数组的名字,数组内每个元素并没有名字。只能通过"具名+匿名"的方式来访问其某个元素,不能把数组当一个整体进行读写操作。 数组可以以指针的形式访问"*(a+i)",也可以以下标的形式访问"a[i]"。但其本质都是 a 所代表的数组首元素的首地址加上"i*sizeof(类型)"字节来作为数据的真正地址 |
通常用于动态数据结构 | 通常用于存储固定数目且数据类型相同的元素 |
需要 malloc 和 free 等相关的函数进行内存分配 | 隐式分配和删除 |
通常指向匿名数据 | 自身即为数组名 |
指针与数组的区别
原创
©著作权归作者所有:来自51CTO博客作者心跳包1的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:十六进制数组转换成ASCII码
下一篇:#yyds干货盘点#Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
一维和二维数组sizeof和strlen的区别
sizeof和strlen的区别
bc 一维数组 二维数组 -
指针数组与数组指针的区别
数组指针和指针数组的区别 二维数组指针与二维数组对比
二维数组 指针数组 数组指针 -
数组指针与指针数组的区别
一、数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,
指针 二维数组 存储 printf 行业数据 -
c数组指针与指针数组的区别
数组参数 等效的指针参数一位数组 char a[30]
指针数组 c 数组指针