
正文
c++语言指针数组,C语言指针数组和数组指针
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中指针和数组是怎样相互转换的
1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
2、(1)指针数组:它实际上是一个数组,数组的每个元素存放的是一个指针类型的元素。
3、地址是可以用加减运算符的,比如a+1就相当于&a[1],即a[1]的地址,a+2就相当于&a[2],即a[2]的地址。同样指针也是可以用加减运算符的,如果p是一个指针指向数组a的首地址&a[0],p++后,p就指向a[1]。
4、指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。数组:系统为某一组数开辟一组单元格,数组首地址便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。
相关问答
Q1: C语言中,如何定义一个‘指针数组’,这个‘指针数组’专门用来存放‘数组...
(1)声明一个数组,声明时用常量表达式指定数组维数,然后可以用数组名访问数组元素。(2)声明一个变长数组,声明时用变量表达式指定数组维数,然后用数组名来访问数组元素。
指针数组:就是存储指针的数组。数组指针:就是指向数组的指针。指针:本质就是一个int型变量,含义:一个内存地址。举例:int *p[10] 指针数组。原因:因为[的优先级比*高,p先和[结合,所以是指针数组。
(1)程序中c1,c2被定义为字符数组并初始化;c3是一个指针变量,指向字符串所在字符数组的首地址。(2)语句char *pArray[3];定义了三个元素的指针数组pArray,数组元素是指向char型变量或数组的指针变量。
楼主说的是数组指针,说的是一个指向数组的指针。不是一个存放指针的数组。可以typedef实现。假如:是一个指向int 数组的指针,数组大小为10;则可以写成 int (*a)[10];则a就是一个数组指针。
Q2: C语言指针数组问题
首先你要明白一点,数组名和指针本质上是一回事,都是地址,该数组的首地址。知道这一点后就可以活学活用了。这是c语言的精髓。
char* names[]这条语句中定义了一个存放字符型数据的地址的指针数组,也就是说names[]中的元素都是地址,这些地址指向的是存放在其他地方的字符数据。
int (*p)[3], p = a + 2 ()优先级先于[],因此p先是指针,是什么指针呢?由[]知道是一个指向数组的指针,因此他其实简单来说就是个指向长度为三的一维数组的指针。
p是数组首地址,由于是局部变量,这个地址应该是栈中的一个地址。p[0]是p第一个成员的数据,这个数据是char型指针,并且指向了常量区中的“aaaaaaaaa”字符串,所以这两个地址肯定是不一样的。
c++语言指针数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于C语言指针数组和数组指针、c++语言指针数组的信息别忘了在本站进行查找喔。







