从零开始学编程---第一步-C语言(六)

时间:2014-03-03 22:39    点击:

下面看几个例子

#include <stdio.h>
main()
{
int a=0; 
printf("a=%d\n",a++); 
printf("a=%d\n",a);

}    

++在后,所以是先运算后递增,第一个a++ 相当于 a=a+1 也就是 a=0+1 此时的a本来就是0 所以第一个a结果是a=0,也就是=后面的那个a

运算后,a=1,也就是递增后的结果,所以第2个结果是a=1,=号前面的那个a



#include <stdio.h>
main()
{
int a=0; 
printf("a=%d\n",++a); 
printf("a=%d\n",a);

}    

++在前 ,后递增再运算    ++a 也等于a=a+1     递增结果为a=1 运算结果也是a=1

所以两个a都是a=1



以下的程序就不说原因了,大家自己想

#include <stdio.h>
main()
{
int a=0; 
a++;  
printf("a=%d\n",a++); 

printf("a=%d\n",a);


}    

结果为a=1,a=2





#include <stdio.h>
main()
{
int a=0; 
a++;  
printf("a=%d\n",++a); 
    printf("a=%d\n",a);



}    
结果a=2,a=2



#include <stdio.h>
main()
{
int a=0; 
++a;  
printf("a=%d\n",a++); 
printf("a=%d\n",a);



}    
结果a=1,a=2



#include <stdio.h>
main()
{
int a=0; 
++a;  
printf("a=%d\n",++a); 
printf("a=%d\n",a);



}    

结果a=2,a=2


a++和++a你们有些应该有点晕了吧

让我们用数学运算在了解一次

int a=0,b=3;

a=(b++)+(b++)+(b++);

++在后是先运算后自加    所以先运算 a=3+3+3    结果a=9

然后b再自加,自加3次,所以b=6
int a=0,b=3;

a=(++b)+(++b)+(++b);

++在前是先自加后运算 自加3次 先自加 b+1=4    存到第一个b里 b此时是4
                               再自加 b+1=5    存到第二个b里 b此时是5
                             再自加 b+1=6    存到第二个b里 b此时是6

结果a=4+5+6 a=15     b=6


注意在VC6.0编译器,这里的结果是a=16,b=6



有的编译器结果还是这样 a=6+6+6=18 a=18



所以根据编译器的不同结果也会不同,只限制为++在前的多运算,这个你也不需要太困惑,++在前的多运算我们很少用到


#include <stdio.h>
main()
{
int a=0,b=3;
a=(b++)+(b++)+(b++);
printf("a=%d\n",a);
printf("b=%d\n",b);
a=0,b=3;        //变量a重新归零,b重新归3
a=(++b)+(++b)+(++b);
printf("a=%d\n",a);
printf("b=%d\n",b);

}    



结果a=9 b=6

a=16 b=6


如果
int a=1,b=2,c;
c=a++*b 

结果是多少?
c=a++*b可以看成c=(a++)*b    等于 a*b a++
++在后先参与运算后递增 先a*b 后a++
结果c=2

c=++a*b 可以看成c=(++a)*b 等于 ++a a*b
++在前先递增后参与运算 先++a 后a+b
结果c=4


下面是程序:
#include <stdio.h>
main()
{
int a=1,b=2,c=0;
c=a++*b;
printf("c=%d a=%d\n",c,a);

a=1,b=2,c=0;
c=++a*b;
printf("c=%d a=%d\n",c,a);

a=1,b=2,c=0;
c=a++*b++;
printf("c=%d a=%d b=%d\n",c,a,b);

a=1,b=2,c=0;
c=++a*++b;
printf("c=%d a=%d b=%d\n",c,a,b);


补充 :a--和--a的用法也是一样的



++和--运算符非常高效,++和--编译后值生成一条语句,而用+1或-1进行加1或减1不会总是这么高效

请熟悉++和--的用法 特别注意在前和在后的区别

来源:幻想编程//所属分类:站长原创/更新时间:2014-03-03 22:39
顶一下
(17)
94.4%
踩一下
(1)
5.6%
上一篇:从零开始学编程---第一步-C语言(五)
下一篇:从零开始学编程---第一步-C语言(七)
相关内容