#include <stdio.h>
#include <stdlib.h>
int
main
()
{
char
a
=
1
;
char
b
=
2
;
int
c
[
10
];
int
i
;
for
(
i
=
0
;
i
<=
10
;
i
++)
c
[
i
] =
i
* (
i
<<
8
);
printf
(
"%d %d\n"
,
a
,
b
);
return
0
;
}
运行结果是多少?
答案是:0 0
要知道为什么,首先要能够划出栈的布局,然后确切的理解小端机是什么意思,知道数组的增长方式,看下图:
虽然自己对栈布局和大小端机都有了解,无奈在一对一纸上笔试的时候还是没有做对。回来在Centos下试了一下,在windows下是不行的。VS的保护措施非常好,会直接报错提醒。