开发者社区> 问答> 正文

char *a = "aa"; char b[2] = "aa";的区别?? 400 报错

char *a = "aa"; char b[2] = "aa";的区别?? 400 报错 char *a = "aa";

char b[2] = "aa";


a,b各占多少字节?应该存储在内存的什么地方?未初始化数据区还是全局变量和静态变量的数据区?

展开
收起
爱吃鱼的程序员 2020-06-01 14:46:39 696 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    说来话长,错误之处请达人指教

    a 实际上指向的是 'aa\0' 所以 a指向 的长度是 3byte;b的长度,b很好说2byte

    a 所指向的 'aa' 理论上应该保存在常量区 ;b 所指向的,就看b的地位如何了


    ######字符串指针 数组 b溢出了######我认同这个。######我得到的答案是: a指向 的长度是 4byte,a是地址大小为4字节,b在这里指求的是数组大小2字节;"aa"是常量字符串应该存储在数据区,a,b是变量或许应该在栈区,?????????????如果有大神回答,请联系zyxcambridge@gmail.com
    2020-06-01 14:46:49
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载