×

指针等于数组名

指针等于数组名(#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));)

admin admin 发表于2024-05-13 06:18:12 浏览24 评论0

抢沙发发表评论

本篇文章给大家谈谈指针等于数组名,以及#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));

输出1,6.因为本身数组名也是一种指针,其指针类型与数组类型相同。数组名指针指向的内容就是数组的第一个元素,也就是下标为0的元素。那么让一个指针等于数组名,其实就是让这个指针指向数组第一个元素也就是下标为0的元素。所以*p=a=6.不明白可追问。

有人说C++中指针就是数组,数组就是指针,请问这句话应该怎么理解啊,C++中数组名是什么呢

事实上应该这么说:数组名就是数组的地址,也是数组的第一个元素的地址,也就是指向数组的指针

数组名相当于一个指针,哪数组指针char *p[],不就变成一个二级指针

数组名本身就是数组的首地址,相当于一个常量指针。而char* p是声明一个指针数组,即声明n个字符指针,当然每个元素指针都可以指向一个字符串。这里p代表的是一个字符指针数组的首地址常量指针,相当于二级指针。

指向指针的指针和二维数组名等同吗

int **p;这是指向指针的指针,表示指针变量p应指向一个指针的地址,注意一定要是指针的地址才不会出错,比如 int a=1; int *p1=&a int **p=&p1不能是int **p=&a因为变量a不是指针,同理对二维数组a的数组名这里要注意,这里的数组名并不是一个简单的指针,二维数组的数组名是一个指向一维数组的指针,也就是数组名a是一个指向包含有三个元素的一维数组的指针,即(*)这样的指针,这样的指针表示的就是一个指向包含有3个元素的一个数组的指针。对于数组名不是一个简单的问题,比如一维数组名a那么数组名a表示的是指向第一个元素的指针,但&a却表示的是指向一个含有3个元素的一维数组的指针,具体问题的研究,请去本人的文库下载相应文章吧 简单给你解释下p是数组,每一个数组元素都是指针,因此*p的地址。要记住无论是多少维的数组,他的数组名都表示的是&a的地址。具体的内容请下载本人文章《C指针与数组的混合运算》里面有讲解

数组名是什么类型指针

指针数组的数组名就是该指针数组首元素的地址的别名。比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。指针数组就比如这个例子:int *p因为指针里面存储的是地址(十六进制数),所以&p这里面存放着一个int变量的地址。是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:比如 int *p看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。

C++的指针与数组名有什么区别

.数组和指针的区别:数组名确实表示指向数组首地址的指针,但这个指针很特别,它的值(指针的值指的是指针所指的地址)不能被改写,能改写的仅仅是其指向的内容,换句话说,数组名只能指向数组的首地址,如果有数组chara;那么如果出现a=a+1;这是编译都通不过的错误。而对于一个普通的指针是可以的,再比如有数组chara;那么再定义一个char*p=a;然后再用p=p+1是合法的,这表示让指针p指向&a。它们的第二个区别是:每当用到数组名这个指针的时候,系统都会传入数组的信息,而普通的指针只是一个4字节的整数,例如:chara;char*p=a;//指针a和指针p都指向数组a的首地址cout《《sizeof(a)《《"##"《《sizeof(p)《《endl;这时的运行结果是“5##4”

#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));、#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf(“%d,%d“,*p,*(p+3));的信息别忘了在本站进行查找哦。