本帖最后由 736010695 于 2014-11-10 10:49 编辑
运算的自增自减(没有自乘和自除)
#include<stdio.h>
int main()
{
//自增自减的几种形式:
int a=10;
a=a+1;//结果是11
a+=1;//也可以写成a=a+1,结果是12
a++;//也可以写成a=a+1,结果是13
++a;//也可以写成a=a+1,结果是14
a--;//也可以写成a=a-1,结果是13,还可以写成a-=1
//在赋值运算中a++和++a的区别:
int b;
int a=10;
b=a++;
printf("b=%d\n,a=%d\n", b, a);
/*输出结果是b=10,a=11,原因分析:在这里b=a++,是把a的值先付给b,所以b的输出结果是a最早定义的10,而后运算a++就是a=a+1,因为a之前定义的是10,这里a=a+1,输出结果就是a为11*/
b=++a;
/*这里的输出结果是a=11,b=11,因为++在a前面,运算时先计算++a,因为之前定义a的值是10,所以这里输出结果++a为11,然后把左边的值赋给右边b,那么b的值是11*/
b=(a++)+(++a);
/*这里输出结果a是12,b是22,原因分析:运算顺序是从左到右的,先从a++开始, 因为a在前面,所以(a++)走完能赋给b的值只有a原来的值10,但 是此时a应变成了11,继续往右走,到(++a),因为++在前面所以直接自增1,因为前面a应变成了11,这里在(++a)走完后为12(a的值此刻变成了 12),10+12=22,所以给b的值是22*/
}
小弟自学,自己总结,不对的地方还请多多指教!
|