|
|

楼主 |
发表于 2006-4-14 12:35:12
|
显示全部楼层
- char ch0;
- char *chP0 = NULL;
- char *chP1 = "love both you are";
- int main(void)
- {
- static char ch1;
- static char *chP1 = "I love you honey";
- char *chP2 = NULL;
- char *chP3 = (char *)malloc(sizeof(char));
- chP3 = "you love me too";
- char *chP4;
- char ch2;
- static char ch3;
- printf("sizeof char :%d\n", sizeof(char));
- printf("&ch0 = 0x%x\n", &ch0);
- printf("&chP0 = 0x%x\n", &chP0);
- printf("&chP1 = 0x%x\n", &chP1);
- printf("&ch1 = 0x%x\n", &ch1);
- printf("&chP1 = 0x%x\n", &chP1);
- printf("chP1 = 0x%x\n", chP1);
- printf("*chP1 = %c\n", *chP1);
- printf("&chP2 = 0x%x\n", &chP2);
- printf("&chP3 = 0x%x\n", &chP3);
- printf("chP3 = 0x%x\n", chP3);
- printf("*chP3 = %c\n", *chP3);
- printf("&chP4 = 0x%x\n", &chP4);
- printf("&ch2 = 0x%x\n", &ch2);
- printf("&ch3 = 0x%x\n", &ch3);
- return 0;
- }
- "address.c" 42L, 934C written
- [root@root GUI]# gcc address.c -o address
- [root@root GUI]# ./address
- sizeof char :1
- &ch0 = 0x8049814
- &chP0 = 0x804980c
- &chP1 = 0x8049804
- &ch1 = 0x8049810
- &chP1 = 0x8049804
- chP1 = 0x804860e
- *chP1 = I
- &chP2 = 0xfee054b4
- &chP3 = 0xfee054b0
- chP3 = 0x804861f
- *chP3 = y
- &chP4 = 0xfee054ac
- &ch2 = 0xfee054ab
- &ch3 = 0x8049811
- [root@root GUI]# size address
- text data bss dec hex filename
- 1503 268 16 1787 6fb address
- [root@root GUI]#
复制代码
真的有点糊涂了,越用代码证实好像越找不出他们存放的规律,但是相信最终会完全透彻的吃掉她。
犯了一个大错误,把main() 中的变量放到非stack中考虑了。 |
|