只有基础打的牢,才能够把问题理解透彻,将以VC6和Gcc来实现.
int main()
{
int i;
char c;
char c1;
int *iPtr;
char *cPtr;
char *cPtr1;
i = 10;
c = 'a';
c1 = 'b';
iPtr = &i;
cPtr = &c;
cPtr1 = &c1;
return 0;
}
GCC:
定义后:
&i = 0xbfffe6a4
&c = 0xbfffe6a3
&c1 = 0xbfffe6a2
&iPtr = 0xbfffe69c
&cPtr = 0xbfffe698
&cPtr1 = 0xbfffe694
0xbfffe694: 0x60 0xc6 0x00 0x40 0xa8 0xe6 0xff 0xbf
0xbfffe69c: 0x36 0x83 0x04 0x08 0x14 0x0a 0x13 0x42
0xbfffe6a4: 0x60 0x53 0x01 0x40
赋值后:
0xbfffe694: 0xa2 0xe6 0xff 0xbf 0xa3 0xe6 0xff 0xbf
0xbfffe69c: 0xa4 0xe6 0xff 0xbf 0x14 0x0a 0x62 0x61
0xbfffe6a4: 0x0a 0x00 0x00 0x00
VC6:
定义后:
&i 0x0012ff7c
&c 0x0012ff78
&c1 0x0012ff74
&iPtr 0x0012ff70
&cPtr 0x0012ff6c
&cPtr1 0x0012ff68
0012FF68 CC CC CC CC CC CC CC CC
0012FF70 CC CC CC CC CC CC CC CC
0012FF78 CC CC CC CC CC CC CC CC
赋值后:
0012FF68 74 FF 12 00 78 FF 12 00
0012FF70 7C FF 12 00 62 CC CC CC
0012FF78 61 CC CC CC 0A 00 00 00