首页 > 代码库 > 关于C的自增运算符
关于C的自增运算符
先看下边的一段代码
1 #include<stdio.h> 2 int main() 3 { 4 int i=3,j,k; 5 6 j=i++; 7 k=++i; 8 printf("i=%d,j=%d,k=%d\n",i,j,k); 9 printf("%d\n",-i++); 10 printf("%d,%d,%d,i,i++,i++); 11 return 0; 12 }
前两个输出函数应该比较简单,但是第三个输出函数输出的是:
8,7,6
不应该是6,7,8吗?
看了书上的解释,printf中,i,i++,i++的求值比较特殊,它是从右往左求值的。也就是先求最右边的i++,此时先引用的i的值为6,之后i的值变为7,然后是中间的i++,先引用i的值7,然后把i的值加1使之变为8,最后是左边的i,此时i的值是8.
关于C的自增运算符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。