。C语言中*(p++) *++p *p++ (*p)++ 这4个有什么区别????
当指针P指向数组中的某个元素是,C语言中*(p++)*++p*p++(*p)++这4个有什么区别???...
当指针P指向数组中的某个元素是,C语言中*(p++) *++p *p++ (*p)++ 这4个有什么区别???
展开
展开全部
第一个最终表示的还是一个指针,相当于*(p+1);
第二个也是指针,相当于*(p);
第三个和第一个相同;
第四个表示指针所指向的区域值加1;
想了解他们的含义你的先把符号的优先级搞清楚。 呵呵
第二个也是指针,相当于*(p);
第三个和第一个相同;
第四个表示指针所指向的区域值加1;
想了解他们的含义你的先把符号的优先级搞清楚。 呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果a=*(p++)表示将p所指元素中的数赋值给a,然后将p指向下一个元素。
如果a=*++p表示将p指向下一个元素,然后把这个元素中的数赋给我。
*p++同*(p++)
如果a=(*p)++表示将p指向元素中的数赋值给a,然后将这个数加1
如果a=*++p表示将p指向下一个元素,然后把这个元素中的数赋给我。
*p++同*(p++)
如果a=(*p)++表示将p指向元素中的数赋值给a,然后将这个数加1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举个例子来说明吧,假设p指向数组的首元素,即p=a,*(p++)作用是先得到*p即a[0],然后使p加1; 对于*p++,由于++和*同优先级,结合方向为自右至左,所以等价于*(p++),作用和*(p++)一样;(*p)++是使p指向的元素值加1,即a[0]+1;*++p和*(++p)作用是一样的,先使p的值加1,即p指向a[1],再做*运算,即得到a[1]的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询