int a[]= {1,2,3,4,5}; int *p = a;
*++p
a[0]
++a[0]
*p++
第一眼看着就觉得怪,以为是就是*p,大学时候学过c语言,感觉像是指针,后来觉得我练习的是java,不应该把,没想到真是出错了,我说怎么没见过这种语法
++ --优先级高于*
++作为前缀,与*的优先级相同,作为后缀,++优先级高于*,所以:++* p;等价++(*p),*++p;等价*(++p),*p++;等价*(p++)
*p是指针变量,当*p=a时,表示的是将数组的首地址即a[0]的地址赋值给了*p,++*p意思就是地址指向了a[1]的地址(数组存储内存是连续的),故*p表示的就是a[1]中存储的值,就等效于++a[0]
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题