c语言调试bug
printf语句里面++a和a++谁先执行呀
我的理解是:输出“2,2” 一个是先加后用,一个是先用后加
int a=1;
// 此时先执行a+1,然后再输出
printf("%d",++a);
int a=1;
// 此时先执行输出a,再执行a+1
printf("%d",a++); 本帖最后由 苏紫方璇 于 2021-12-20 17:29 编辑
只能说非考试不要用这种,不同的编译器会给出不同的结果
例如
int a = 1;
printf("%d,%d", ++a, a++);
vs结果是2,1
gcc结果是3,1 我很赞同 我也刚学,这种最好不要用,易错不利于理解! 这是未定义行为,结果是不确定的,建议还是不要这么不确定地写。
页:
[1]