课程
/后端开发
/C
/C语言入门
我纠结的是x=0时,x++和++x为什么一个值为0,一个值为2
2015-06-07
源自:C语言入门 3-3
正在回答
x++是先取值后运算,那么 printf("x=%d\n",x++);这时候先取x的值是0就直接输出x的值,所以它输出的值就是0。取到值以后的运算并不影响到这个输出语句。
++x是先运算后取值,上一个输出语句printf("x=%d\n",x++);运算后x=1,那么现在就是在x=1的基础上运算再取值,所以x又自增1了,即1+1,这时候的printf("x=%d\n",++x);就输出了2。
AnswerCainslupus
Perona 回复 AnswerCainslupus
AnswerCainslupus 回复 Perona
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
5 回答x=0. x++=0是为什么?
4 回答int x;(x=2*3,x+4),x*3; x=10,请问为什么?
4 回答#include <stdio.h> int main() { int x = 10; int y = 10; x=x*2; y*=2; printf("x=%d\n", x); printf("y=%d\n", y); return 0; }
2 回答#include <stdio.h> void fn() { static int x = 1; //定义静态局部变量 x*=2; printf("x=%d\n",x); } int main() { int i; for(i=0;i<5;i++) { fn(); } extern int x; //调用外部变量 printf("x=%d\n",x); return 0; } int
3 回答#include <stdio.h> int x = 77; void fn1() { printf("fn1(): x=%d\n", x); } int main() { int x = 10; if(x>0) { static x = 100; x /= 2; printf("if语句内, x=%d\n", x); } printf("main方法内, x=%d\n", x);