C语言中定义int *p;那么*(p++)和*p++有区别吗?
6个回答
展开全部
有区别
*p++是将p指针指向的地址中的值自增1
*(p++)是将p所指向的地址自增1,也就是指向p地址后面的那个值
比如p原先地址为0x0000,里面放的是1,地址0x0001里面放的是5
执行*p++后返回的是2
执行*(p++)后返回的是5
*p++是将p指针指向的地址中的值自增1
*(p++)是将p所指向的地址自增1,也就是指向p地址后面的那个值
比如p原先地址为0x0000,里面放的是1,地址0x0001里面放的是5
执行*p++后返回的是2
执行*(p++)后返回的是5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我可以负责任的告诉你。真的没有区别呢!上面的秀才说的很明白了。在我们的教材中有这样的一句话“*p++相当于*(p++),其中的++是作用于p的,而不是作用于*p的”另外我也用编译器验证过了。这样的语法问题我建议你还是多上机子验证。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没区别 ++和*是同级的 ++这个符号又是从右向左开始的 所以*p++是先运算p++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有区别
先容我举个例子
int i=50,j=60,*p1=&i,*p2+&j;
*p1++等价(*p1++)先得到*p1的值然后再p1=p1+1;
(*p1)++表示中(*p1)即是变量i,表示i=i+1;两者表示的p1的指向不一样
先容我举个例子
int i=50,j=60,*p1=&i,*p2+&j;
*p1++等价(*p1++)先得到*p1的值然后再p1=p1+1;
(*p1)++表示中(*p1)即是变量i,表示i=i+1;两者表示的p1的指向不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询