I++,I--,++I,--I

来源:互联网 发布:适合开发的linux系统 编辑:程序博客网 时间:2024/05/16 01:56

I++,I--,++I,--I,想这样的运算一直是比较难理解的,如果他加上与其他的运算结合起来的话,那就更让难一理解了,
首先要说明的是,结合的时候你要看看是哪个运算符的优先级高,++是个运算符,
基本的理解是:
i++  ++ 在后面,我称为后致运算,就是说先取出I的值做运算,然后I自己在加1,
++i  ++ 在前面,我称为先致运算,就是说I自己先加1,然后在取I的值去做运算,
--I  I--也这样理解,
对于这个题目:
#include "stdio.h"
main() 
{int i,k; 
i=3; 
k=++i+(++i); 
printf("k=%d,i=%d\n",k,i); 
i=3;
k=i++ +(++i); 
printf("k=%d,i=%d\n",k,i); 
} 偶的编译器是:
k=10,i=5
k=8,i=5;
这样不难理解,你们的编译器会有怎么样的结果,我不知道,大家试试其他的便宜器,解释一下运算过程:

k=++i+(++i);  先()里的毫无疑问先运算,即I=4了,然后往前看,看到++I 先致运算,所以I先加I=5,然后再取值相加,即5+5=10, 这个时候I=5,

k=i++ +(++i); 先()里的毫无疑问先运算,即I=4了,往前看看到了I++后致运算,即先取值4参加运算k=4+4=8,然后I自己在加1  所以I=5了

但是他们与其他的运算符结合起来就,要看你的编译器是怎么结合他们了,看你的 编译器是怎么安排他们的优先级,不是每个编译器运行的结果多是一样的。注意这样主要是理解,在实际中我想是不会有程序员写这样难理解的代码的
0 0
原创粉丝点击