c语言,(*q)++和q++有什么不同
答案:2 悬赏:70
解决时间 2021-01-08 01:40
- 提问者网友:
- 2021-01-07 04:59
c语言,(*q)++和q++有什么不同
最佳答案
- 二级知识专家网友:拜訪者
- 2021-01-07 06:21
C编译器认为*和++是同优先级操作符,且都是从右至左结合的。由于()的优先级比*和++都高,所以(*q)++中的++就作用在(*q)上(即q指向的目标上)了;q++中的++作用在指针q上而与q指向的目标无关。比如有:
int x,a[]={1,2,3,4,5},*q=a;
x=(*q)++;//执行这一句后x=a[0]=1,a[0]=a[0]+1=2。就是说++作用在a[0]上,a[0]是q的指向目标。而q++只是让q=a+1,即使q指向了a[1]。
int x,a[]={1,2,3,4,5},*q=a;
x=(*q)++;//执行这一句后x=a[0]=1,a[0]=a[0]+1=2。就是说++作用在a[0]上,a[0]是q的指向目标。而q++只是让q=a+1,即使q指向了a[1]。
全部回答
- 1楼网友:酒醒三更
- 2021-01-07 08:00
(*q)++ 是指针q所指单元值加1;
q++是指针q的值值加1(即指向下一个元素)追问所指的单元什么意思?追答所指的单元什么意思——比如,int a=5, *p=&a; 指针p所指的单元就是变量a所占据的内存单元。追问数组的数内存不是连续的,那单元加一,指向下一元素不一样吗
q++是指针q的值值加1(即指向下一个元素)追问所指的单元什么意思?追答所指的单元什么意思——比如,int a=5, *p=&a; 指针p所指的单元就是变量a所占据的内存单元。追问数组的数内存不是连续的,那单元加一,指向下一元素不一样吗
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯