用ADS编译器,以下C编码对于ROM空间有什么影响,有什么区别,求助.

lieye_leaves 2011-07-28 07:32:56
用ADS编译器,以下C编码对于ROM空间有什么影响,代码如下:
char* p = "sasasasas",
char p[]= "sasasasas";
两者有什么区别?

...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅得不敢出门 2011-07-29
  • 打赏
  • 举报
回复
char* p = "sasasasas",
char p[]= "sasasasas";
两个p都是放在栈上的. 只是类型限定不同,占用空间也不一样.
第一个其实应该是const char *p , 第二个占用了strlen("sasasasas"),指向空间中内容不可修改, 在运行期其值被赋为"sasasasas",栈空间中内容可修改.
而这里的两个"sasasasas"是放在只读存储区的(其实是一个, 在.rodata中).
MSOKD 2011-07-28
  • 打赏
  • 举报
回复
一个在全局区,一个在堆栈区()

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧