3个回答
展开全部
对于指针,可以简单的这样理解,带有*号的,就是这个数值,不带有*号的,就是地址。
例如:int array[5]={1,2,3,4,5} *p;
*p=array[0]或者p=array;
++*p就是array[0]自加后的值,即1+1后的值;
*++p就是array加完后再取它的数组值,就是array[1]的值,即2;
*p++就是array[0]本身。即1;
(*p)++就是array[0]的自加,即1+1;
*(p++)带有*,说明它还是一个数值,而不是地址,(p++)就是array自加,也即是array[1]的地址,加上前面的*号,即是array[1]的数值。
例如:int array[5]={1,2,3,4,5} *p;
*p=array[0]或者p=array;
++*p就是array[0]自加后的值,即1+1后的值;
*++p就是array加完后再取它的数组值,就是array[1]的值,即2;
*p++就是array[0]本身。即1;
(*p)++就是array[0]的自加,即1+1;
*(p++)带有*,说明它还是一个数值,而不是地址,(p++)就是array自加,也即是array[1]的地址,加上前面的*号,即是array[1]的数值。
展开全部
关于指针自加的问题,C语言书上讲的都有的。
例如*p=a[10],则++*p的值表示a[0]的值自加,*p++的值是a[0],而*p自加后是*p的值,*++p的值表示的是a自加是a+1,再取a+1对应的数组值,(*p)++的值是a[0],而*P对应的是自加的值,*(p++)表示a【1】的值。
例如*p=a[10],则++*p的值表示a[0]的值自加,*p++的值是a[0],而*p自加后是*p的值,*++p的值表示的是a自加是a+1,再取a+1对应的数组值,(*p)++的值是a[0],而*P对应的是自加的值,*(p++)表示a【1】的值。
追问
*(p++)也应该表示a【0】的值吧,我搞不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p是指针 *p是指针变量,它的值为P指向数据的值
eg int[a]={1,2,3}
int *p
p=a // p 指向数组a的首地址
*p=1;
++*p=2;
*(p++)=2 //显示p的地址加1(是加一个int的长度哟)即P指向啦下一个元素啦(a[1])
eg int[a]={1,2,3}
int *p
p=a // p 指向数组a的首地址
*p=1;
++*p=2;
*(p++)=2 //显示p的地址加1(是加一个int的长度哟)即P指向啦下一个元素啦(a[1])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询