⑴ 谁能详细的讲一下c语言中的自加自减运算符:++、--
a=1,b=a++ b的值为1,a的值为2
a=1,b=++a b的值为2,a的值为2
a=1,b=a-- b的值为1,a的值为0
a=1,b=--a b的值为0,a的值为0
⑵ C语言自加符号
C语言中区分前自增与后自增,它们都有副作用,尤其是后自增。
前自增可能更好一点,它不产生临时变量,效率更高一些。
++y相当于:y=y+1;在变量的使用之前先自增。
y++相当于:y; 其它语句... y=y+1;也就是使用它时,它的值不变,在其使用之后的某一时刻但在再次使用它前其值加一。而且不同的编译器不一定有一致的实现行为。
a=(y++)+(y++)+(y++) 这是一条语句,通常的编译器实现会将此语句一次性扫描完成。这种情况下,y++会保持其值不变,此语句完成后,将y的值递增3次。
⑶ C语言自加运算
自加和自减运算分前置和后置,前置就像++m,后置就是像m++;在简单语句中没有区别,例如++m(++m);
......;
......;
在复杂语句中就有区别了,前置会先自加或自减,然后将结果赋给一个变量或者显示出来,就如你给的例子printf("%d %d \n",++m,n++),先将m执行一次自加后再显示出来,结果就是13了。
后置会先将原先的值赋给一个变量或者显示出来,再将原先的变量执行一次自加或自减,就如你给的例子printf("%d %d \n",++m,n++),先取n的值显示,即32,再执行自加得到33
下面的指令是建立在上个指令基础上执行的,上个指令执行后的结果是m=13,n=33
那么printf("%d %d \n",m++,++n)指令的输出的结果是13 34了。这个指令执行后m=14 n=34
⑷ C语言自增运算
++是自增运算符,++k或k++都是让变量k的值加1;- -是自减运算符,- -k或k- -都是让变量k减1。运算符位于操作数之前,称为前置运算符;运算符位于操作数之后,称为后置运算符。
这两种运算符的差异是:前置运算符是对变量先递增(递减),然后参与其他运算,即先改变变量的值后使用;后置运算符则是变量先参与其他运算,后对变量递增(递减),即先使用后改变。
比如:int a=9;
b=a++;(b=9;a=10)
b=++a;(b=10;a=10)
对于你的这道题来说,++i和i++都是一样的;因为都是改变i的值。
还有,printf("%d\n",sum)少写了一个“;”,应该是printf("%d\n",sum);
希望对你有所帮助!
⑸ C语言的自加自减运算符
这两个都是未定义行为,因为(y++)+(y++)+(y++)里面没有顺序点,所以你无法保证执行完第一个y++之后,y的值是否增加了,如果增加了,那么第二个y++就会是6。
只有顺序点才能确定一个副作用被实现,在这里,副作用就是确保y++之后,y加1。
下面的那个++y亦是同理。
至于什么是顺序点,可以参考这个:
C/C++语言定义(语言的参考手册)明确定义了顺序点的概念。顺序点位于:
1. 每个完整表达式结束时。完整表达式包括变量初始化表达式,表达式语句,return语句的表达式,以及条件、循环和switch语句的控制表达式(for头部有三个控制表达式);
2. 运算符 &&、||、?: 和逗号运算符的第一个运算对象计算之后;
3. 函数调用中对所有实际参数和函数名表达式(需要调用的函数也可能通过表达式描述)的求值完成之后(进入函数体之前)。
⑹ c语言自加运算符
如果printf("%d",a++);那么结果就是五,a++单独成一个语句时,效果等同于:a=a+1;和++a;
你也是初学者?用电脑加我为好友,以后互相交流…我为了弄懂这个也问倒几个高手,不是难倒,是烦倒…因为我要问个一清二楚!Q960575562
⑺ 关于c语言的自加自减运算
具体分析:
首先须知: a++ 就是a先做其他运算,再做自加运算比如 a++*b a与b相乘5*8=40 然后a自加=6
++a 是a先做自加运算,再做其他运算,比如 ++a*b a先加得到7=6+1,然后再与b相乘,7*8=56
a--和--a也是同理。
然后自减的情况 a*b=7*8=56 然后a自减 7-1=6
然后a先自减 a=6-1=5 然后与b相乘 a*b=5*8=40
不知说明白吗?
楼主须区分优先级和自加减的情况,自加减的优先级和单目运算相同。
其次,自加减操作情况有时不同,如题所见,须特别分析。
最后,自加减的情况一般很少参与运算,比如 d=++a+a++ 不太出现似乎。
⑻ 关于c语言左右自增运算
C语言的前置++和后置++,称为自增运算符
如果单独写 自增运算符为一个语句,二者没有区别
++i; 和 i++; 都是让i+1赋值给i
但是如果把自增运算符写入到另外表达式中二者就有很大区别了。
例如
1、
i=5;
j=i++;此处表达式等价于“j=i;i=i+1;”两条表达式。
执行后i为6,j为5
2、
i=5;
j=++i;此处表达式等价于“i=i+1;j=i;”两条表达式。
执行后i为6,j为6
注:通过上述例子,可以看出运算顺序产生了区别,导致了输出结果产生不同。