老师,关于堆栈的问题

来源:6-10 CPP程序的存储区域划分

相信光变成光

2020-11-26

http://img.mukewang.com/szimg/5fbf92d209d6e57f06720221.jpg

老师,为什么“abc”在栈区,“123456”在常量区,不都是常量吗?为什么位置不一样?

写回答

1回答

quickzhao

2020-11-27

这属于C++编译器对指针优化处理的一种方式,你可以试试用另两个变量:如char s1[] = "abc";  char* p32 = "123456"; 你会发现char [] 和char*的行为不一样;s和s1真正值的位置不一样,但p3和p32却指向同一块常量区域。

0
1
完整的柠檬
请问这是因为 常量和静态常量的区别嘛?
2020-11-30
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程