#include <stdio.h> char *func(void) { char *str = "Hello world"; return str; } int main(void) { char *p = NULL; p = func(); return 0; }
[quote=引用 2 楼 Jake443403168 的回复:] 编译器编译程序时将"hello,world"这个字符串常量存放在了常量存储区中,定义指针时char *str="hello,world"; str指向的是常量态存储区地址,所以尽管从函数返回了,但是常量存储区存储的字符串还是有效的,常量存储区要在程序结束的时候才释放!
编译器编译程序时将"hello,world"这个字符串常量存放在了常量存储区中,定义指针时char *str="hello,world"; str指向的是常量态存储区地址,所以尽管从函数返回了,但是常量存储区存储的字符串还是有效的,常量存储区要在程序结束的时候才释放!
69,371
社区成员
243,081
社区内容
加载中
试试用AI创作助手写篇文章吧