c语言中*a++和(*a)++有什么不同?

 我来答
泽男君
2018-03-30 · TA获得超过1.7万个赞
知道小有建树答主
回答量:171
采纳率:100%
帮助的人:3.7万
展开全部
  1. 作为单独的语句,a++;与++a;并没什么区别

  2. 但是b = a++;和b = ++a就有区别了

a++这个式子的返回值是a,所以b = a++相当于b = a,然后a = a+1;
++a的返回值是a+1;所以b = ++a相当于a = a+1;然后b = a;

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

度浩丽局妙
2019-04-27 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:711万
展开全部
1,表达式的值不同,++a的值是原a的值加1,a++是原a值
例1
int
a=1,
b;
b=++a;
printf("%d",b);
例2
int
a=1,
b;
b=a++;
printf("%d",b);
2,++a可以做左值,a++不可以
例1
int
a=1,
b=5;
++a=b;
printf("%d",a);
例2
int
a=1,
b=5;
a++=b;/*这里是个编译错误*/
printf("%d",a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜神月YOONA
2013-03-14 · TA获得超过339个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:253万
展开全部
优先级 () > ++ > *
*a++ 先执行++ 再执行 * 即指针先移动一个位置,在对移动后指针所指位置解引用取值。
(*a)++ 先执行*a 再执行++ 即先对指针所指位置解引用取值,再对这个值自增加1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d5f8dab
推荐于2017-11-25 · TA获得超过202个赞
知道答主
回答量:156
采纳率:0%
帮助的人:96.7万
展开全部
xxx = *a++等价于 xxx =*a;a++;指针移了一位xxx = (*a)++等价于xxx =*a;(*a)= (*a)+1;指针没有移位,内容加1了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闽恨甲瑾
2020-05-14 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:693万
展开全部
hahugo88的回答很正确,这个意义必须掌握好哦!
我就是因为这个概念模糊考试丢了10分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式