有关一道printf 的面试题
2017-07-12 23:24
169 查看
今天有个学生面试,面试题目里面有一道有关 printf 的输出问题
源代码如下:
#include <stdio.h> int main(void) { int a = 10, b = 20, c = 30; printf(" res_a : %d , res_b : %d, res_c : %d\n", a + b + c, (a = a + 10), (c = c * 10)); return 0; }
// 一般的人会觉得这是什么, 60, 20, 300? // 但是 printf 也是一个函数调用, 函数调用的话就是遵循 栈的先进后出的原则。 // 所以 首先,printf 输出的是最后的 c = c * 10 == 300, 然后是 a = a + 10 == 20, 最后才是 a + b + c ==340 ;
相关文章推荐
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道面试题引发的有关随机数的思考(5)
- 有关运算符优先级的一道面试题
- 一道面试题引发的有关随机数的思考(6)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道与时间差有关的SQL面试题
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道面试题引发的有关随机数的思考(1)
- 一道面试题引发的有关随机数的思考(7)
- 黑马程序员_有关构造方法的一道面试题
- 一道面试题引发的有关随机数的思考(2)
- 一道C语言面试题printf输出问题,高手们都来看看吧
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 另一道与fork()有关的面试题
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道有关飞机绕赤道飞行的面试题
- 与全局变量构造析构顺序有关的一道面试题(C++)