关于字符串常量

[复制链接]
1470|2
 楼主| baidudz 发表于 2013-4-29 10:04 | 显示全部楼层 |阅读模式
void main()
{
char *p ="123456";
}
这个涉及到栈和常量内存区。

void main()
{
char a[] ="123456";
}
这个呢?这个涉及到哪些区呢?
火箭球迷 发表于 2013-4-29 10:20 | 显示全部楼层
前者放在.strtab或者.shstrtab段, 也就是字符串表,查看你的.obj文件应该能找到这些字符串。
txcy 发表于 2013-4-29 10:32 | 显示全部楼层
har a[] ="123456"; 这个东西会被编译器变成  char a[7] = "123456"

这样你就能清楚放在哪里了吧.

实际上相当于是一个动态数组, 但是是在编译期决定其大小.

char a[] ="123456"; 就相当于, 申请了一个数组, 然后初始化为 123456

具体细节, 可以查看反汇编代码.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

2284

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部