c++中对于数组int a[9],*p=a,a+1,a++,++a,p+1,p++,++p有什么区别

c++中对于数组int a[9],*p=a,a+1,a++,++a,p+1,p++,++p有什么区别,是不是都表示a[1]?

a++和++a是错误的,编译都不会过,因为数组名是常指针。只剩下a+1和p+1了,它们在使用上是没有区别,指向了同一个地方,但a是常指针而p是普通指针!
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-11-01

都不表示a[1]

a+1表示&a[1]

a++和++a都是非法

p+1和a+1相同

p++和++p不一样,前者值是p后者是p+1

c++中对于数组int a[9],*p=a,a+1,a++,++a,p+1,p++,++p有什么区别
a++和++a是错误的,编译都不会过,因为数组名是常指针。只剩下a+1和p+1了,它们在使用上是没有区别,指向了同一个地方,但a是常指针而p是普通指针!

7. 若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a...
选C。A、p+1 \/\/p指向a[0],p+1显然就是a[1]的地址。B、a+1 \/\/a指向a[0],a+1显然就是a[1]的地址。C、a++ \/\/这个先取a的值,再使a自加1,而a的值是a[0]的地址,因此本题答案就是这个。D、++p \/\/这个表示先使p自加,再取值。p指向a[0],自加后指向a[1],因此++p...

C++中 有int a[10] ;int *p; p=a;则(*p)++,++(*p)什么意思?
int *p 就是声明一个指针,这个指针在栈里,其字节长为4,就是地址。只不过这个地址是指向int类型的 p = a就是让p指向刚才的那个数组的头(第一个元素)(*p)++这个要分两部分说,*p就是通过p这个指针指向的空间的数据,那么*p就是a[0],然后再++,其实就是a[0]++ 现在就是a[0]++和++a...

C++中 有int a[10] ;int *p; p=a;则(*p)++,++(*p)什么意思?
p=a表示将p指向数组a的首地址,意即p指向a[0];p则代表a[0],它的意思是取所指向地址的元素;(*p)++指的是a[0]++,即将a[0]后自增1;而++(*p)指的是++a[0],即将a[0]后自增1。

C++中 有int a[10] ;int *p; p=a;则(*p)++,++(*p)什么意思?
p=a表示将p指向数组a的首地址,意即p指向a[0];p则代表a[0],它的意思是取所指向地址的元素;(*p)++指的是a[0]++,即将a[0]后自增1;而++(*p)指的是++a[0],即将a[0]后自增1。

若有定义:“int a[9], *p=a”,则不能表示a[1]地址的表达式是()。
是c,因为指针指的是地址,指针变量是指用于存放地址的变量,可以通过指针变量可以访问它所指向的变量,题目int a[9], *p=a算是初始化p,也就是对指针变量的初始化,使p指向变量a

C语言中 *(p++) p++ *p++ ++*p (*p)++ 分别是什么意思
p++ : 等同于 *(p++)++*p : 指针所指地址中的数据+1 (*p)++ : 取地址数据,地址中的数据+1 tip1. * 与 ++的优先级相同的,它们的结合性都是自右向左 tip2. ()的优先级高于*和++ 优先级、结合性分析:p++ 由(tip1)可知,p先与++结合,再与*结合,(p++) ...

C语音里p++和++p有什么区别?
p++是先取p的值再使P的值加一;如运行p=1;a=p++;则a的值为1,p的值为2;++p是先使P的值加一再取p的值如运行p=1;a=++p;则a的值为2,p的值为2。

int a[10],*p=a;p++;p++之后是...
p=a[i].这时p指向的是数组内的元素,而*p=a意思是p里面的值是数组a的首地址,p自己本身也占有一定的内存,也占有一个地址,这个地址和数组a的首地址并不连续.p++之后p与数组a就没有什么关系了\/\/ \/\/如a[]={1,2,3,};则a[0]=1,a[1]=2,a[2]=3;假设a[0]的地址是 0f00 所以a的首...

c语言中*++p与++*p有什么区别
和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。比如有:int x,y,a[]={1,2,3,4,5},*p=a,*q=a;x=*p++;\/\/执行这一句后x=a[0]=1,p=a+1 y=(*q)++;\/\/执行这一句后,y=a[0]+1=2,q仍然=a ...

相似回答