题目如下:
假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少?
int main(){
long long a = 1, b = 2, c = 3;
printf("%d %d %d\n", a, b, c);
return 0;
}
正确答案:1 0 2
解析:
感谢牛客网网友@千江乐 提供解决思路
- printf()是一个库函数,C以及C++中函数的参数是从右往左入栈的;
- 和堆的生长方向相反,栈的生长反响是从高往低的。
- 小端模式是低位存储低字节
- %d格式输出的是4个字节大小,而long long 为8个字节。