今天和大家分享一下关于数组指针的问题(数组指针的用法)。以下是边肖对这个问题的总结。让我们来看看。
首先,数组指针和指针数组的区别
二、指针数组和数组指针的区别
1。性质不同
指针数组:首先,它是一个数组,数组的元素都是指针,是“存储指针的数组”的缩写。数组指针:首先是指针,指向一个数组,是“指向数组的指针”的简称。
2。字节不同
数组占用多少字节是由数组本身的大小决定的。每个元素都是一个指针,任何类型的指针在32位系统中都将总是占据4个字节。
在32位系统中,数组指针总是占用4个字节。至于它所指向的数组占了多少字节,我不知道,但要看数组的大小。
3。意思是* * *不一样
指针数组:数组A中的所有元素都是int指针;数组指针:指向数组a的指针。
4。不同的变量
指针数组:指针数组可以说是“指针数组”,这个变量就是一个数组。
数组指针:数组指针可以说是“数组指针”,这个变量就是指针。
第三,数组指针是指针的数组吗?
没错。
数组指针是指向数组地址的指针,本质是指针;指针数组是元素为指针的数组(例如int *p[4],定义了三个指针:p[0],p[1],p[2],p[3]),其本质是一个数组。数组指针的使用在某些情况下类似于指针数组,所以要注意区别。
p是一个指针变量,指向一个包含四个int元素的一维数组。此时,P的增量是基于它所指向的一维数组的长度。
*(p+i)是一维数组a[i][0]的地址;*(p+2)+3表示a[2][3]的地址(第一行0,第一列0),*(p+2)+3)表示a[2][3]的值。
扩展数据:
只有以下四种类型的值可用于初始化或分配指针:
1.值为0的常量表达式,例如,值为0的整数const对象可以在编译时获得,也可以是0的文字常量。
2.具有匹配类型的对象的地址。
3.另一个对象末尾的下一个地址。
4.另一个相同类型的有效指针。
引用:
百度百科-指针数组
四、如何使用数组指针
可以这样来#include #include #include int main(){char *d[4];d[0]=malloc(1*sizeof(char));strcpy(d[0],\"web\");printf(\"%s\",d[0]);return 0;}此时*d[]为一个指向指针的指针d[0]=malloc(1*sizeof(char));此句话的意思是,分配1个字节的内存空间给d[0],也就意味着d这个数组的第一个元素[0]内保存的是一个1字节空间的地址,因为d[0]指向一个地址!你可以这样理解对于普通的数组(例如 char d[4];),在内存中是这样的变量:内存地址:内容d[0]:0x400000h:\'w\'d[1]:0x400001h:\'e\'d[2]:0x400002h:\'b\'d[3]:0x400003h:\'\\0\'而在此处 char *d[4]; *d[0] = malloc(1*sizeof(char));,是这样的\'d[0]:0x400000h:0x400100hd[1]:0x400001h:0x400101hd[2]:0x400002h:0x400102hd[3]:0x400003h:0x400103h而在内存0x400100h处才保存着\"web\\0\"不好意思,我上面说错了,应该是d[0]:0x400000h:0x400100hd[1]:0x400001h:NULLd[2]:0x400002h:NULLd[3]:0x400003h:NULL而在内存0x400100h处0x400100h:\'w\'0x400101h:\'e\'0x400102h:\'b\'0x400103h:\'\\0\'对应的,你的代码执行后,内存变量应该是这样的d[0]:0x400000h:0x400100hd[1]:0x400001h:0x400104hd[2]:0x400002h:0x400108hd[3]:0x400003h:NULL在内存0x400100处:0x400100h:\'w\'0x400101h:\'e\'0x400102h:\'b\'0x400103h:\'\\0\'0x400104h:随机字符......0x400108h:随机字符以上内存地址是以字节方式内存对齐的,用一些编译器编译后可能地址会有些问题(比如d[0]到d[1]不止差了4,可能是8),但总体框架就是这样!
以上是边肖对数组指针(数组指针的用法)及相关问题的回答。希望数组指针的问题(数组指针的用法)对你有用!
以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.jwshe.com/839467.html,转载请说明来源于:嘉文社百科网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。