天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
int i = 5; printf("%d %d %d %d", i++, i, ++i, i++); 在实际工作里面是不会这么写的,不会在printf()函数里面这么调用变量的,因为会出问题的。 printf()是一个官方函数,它不是说从左往右处理一个变量发送一次数据, 不是 i++; i; ++i; i++' 可能会有部分编译器是这样做的。 但是很多编译器从右往左的。也就是 i++; ++i' i; i++; 这和预想结果会有出入的,常规思维都是从左往右结合的 |
Hephaestus 发表于 2021-6-28 22:26
楼主的代码起码是确定的,在任何编译器上面都可以得到同样的结果。
你这段代码纯粹是象牙塔里面的书呆 ...
天ノ忆 发表于 2021-7-3 16:11
难不成工作中会有人这样写?只是用这个例子来理解运算优先级,你刚开始学代码的时候还知道有什么编译器吗 ...
天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
天ノ忆 发表于 2021-6-28 16:36
int i = 5;
printf("%d %d %d %d", i++, i, ++i, i++);
研究明白这个这一类型的都明白了
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |