c语言中a加加和加加a的区别,这个程序运行结果怎么解释

如题所述

这个程序看不出区别,原理是这样的:a++,是先使用变量a,再执行++(加1);而++a刚好相反,在程序使用变量a之前先执行++,也就是说此时程序使用的a值加过1。你的程序是打印输出,先后执行++不影响最后输出结果,在一些运算优先级会影响结果的地方就能看出不一样
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-06
当在printf中输出多个自加自减运算,涉及到压栈的知识,最后的结果还有可能和编译器有关,建议不要这样写,也不会有这样的题目考你。网上说,写出这样的代码会被别人的打死[滑稽]

c语言中a加加和加加a的区别,这个程序运行结果怎么解释
这个程序看不出区别,原理是这样的:a++,是先使用变量a,再执行++(加1);而++a刚好相反,在程序使用变量a之前先执行++,也就是说此时程序使用的a值加过1。你的程序是打印输出,先后执行++不影响最后输出结果,在一些运算优先级会影响结果的地方就能看出不一样 ...

c语言++a和a++区别
++a 为 4 先加加 再计算 也就是执行当前命令时 a 已经加加了 a++ 为 3 先计算 再加加 代表执行当前命令时 a 还没有加加 执行完当前这一条命令后 加加

C语言中++a和a++的问题
a=a+1;\/\/前加加先加的过程 c=a;\/\/前加加后用的过程 === 所以结果是:a=12 b=10 c=12

c语言, a=2, a+(++a) 和 a+(a++)的结果分别是6和4, 为什么?用的是VC
a+(a++) 的执行顺序 限于 a+a;a++;一般来说 这样的式子的执行顺序取决于编译器 编译器的思想不一定一样

C语言中 a=3;printf("++a=%d a++=%d\\n",++a,a++); 运行结
答案应该是5 3 先执行a++的原因是表达式是按参数进栈的逆序执行的。printf首先得到的是a的副本,放到第二个参数的位置,然后a自增 接着处理第一个参数printf得到的a再加加的以后的副本,也就是5

C语言题:求结果,要给出解释
++运算符不能作用在一个右值上。但并不是所有表达式都返回右值。赋值表达式返回的就是左值,如果这样写:(a=3)++; 这句程序是正确的,可以通过编译。因为(a=3)是赋值表达式,返回左值,而++运算符正好作用于一个左值。第二题:B 。c++的意思是先返回c的值,然后再将c加1。

c语言*a++=*b什么意思,具体怎么运行的
a也是指针,它的值是个地址,即它所指向变量的地址,a++即a+1,这里并不是地址值加一,而是加一个单位,这里的单位是它所指向的变量的大小。a++是使用完a后使其加1.所以整个表达式的值是:把指针b指向的变量的值给指针a(另一种说法是让指针a指向b所指向的变量),然后让指针a的地址值+1(个...

c语言中i++和++i的区别
i加加和加加i都是c语言里的自增,但是它们自增的顺序不同。加加i表示,i自增1后再参与其它运算,而i加加则是i参与运算后,i的值再自增1。

c语言中s+=a++ 是什么意思?
1.s+=a++等价于 s=s+a++; 等价于 s=s+a; a=a+1; 意思是: s自增a值以后,a再自增1。2.要弄清楚表达式的具体含义,必须知道运算符运算的先后顺序,然后分步进行解释。以下是运算符的优先级别表:

关于C语言的累加,i++和++i
先说下i++和++i的区别:i++是后加加,先做运算,之后i自加1, ++i是i先自加1,再做运算。第一个问题,打印 a++时,先运算就是先打印,之后a自加1,所以打印出来是1 第二个问题,满屏的1是因为你的循环结束条件不对,就是无限循环,造成满屏都是1 第一次循环:i = 10, 输出10,10自...

相似回答