#include
<
stdio.h
>
int
main() {
int
a
=
'
abc
'
; printf(
"
%s\n
"
,
&
a);
//
printf(&a);
}
结果是什么: ??
结果是cba:
为什么?
int a='abc';

编译器会将'abc'扩展为int,它的值为

6382179 即0x00616263

而intel int内存的实际存储格式是低位在前,所以实际a指向的内容为

0x63626100

如果按字串输出,正好是

cba

且正好是以\0结尾