
正文
C/C++中字符串存储位置
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
代码:
#include <iostream>
#include <cstdio> using namespace std; void fun(char **p){
//char* s = "world";
char s[] = "world";
printf("point s = %p\n",s);
*p = s;
printf("point p = %p\n",*p);
} int main(){ char *p = "hello";
printf("point p = %p\n",p);
cout<<"func start"<<endl;
fun(&p);
cout<<"func end"<<endl;
printf("point p = %p\n",p);
cout<<p<<endl; return ;
}
输出:
point p = 0x400acc
func start
point s = 0x7ffe10660100
point p = 0x7ffe10660100
func end
point p = 0x7ffe10660100
`
若将代码第8行注释并替换成第7行注释内容,输出为
point p = 0x400ac2
func start
point s = 0x400aa0
point p = 0x400aa0
func end
point p = 0x400aa0
world
分析:
常量字符串存储在文字常量区,而字符数组存储在栈上。







