您的位置:首页 > 其它

字符指针初始化方式与字符串存储位置之间的关系

2014-04-12 18:50 288 查看
#include <iostream>
using namespace std;

char* fun()
{
	char *p="Hello cjc";
	return p;
}

char* fun1()
{
	char p[]="Hello xiao cjc";
	return p;
}

int main(void)
{
	char* str1,*str2;

	str1=fun();
	str2=fun1();

	printf("fun1 print out\n%s\n",str1);
	printf("fun2 print out\n%s\n",str2);
	system("pause");
	return 0;
}




由以上的结果可知,当在fun()中初始化字符串时,字符串存储在常量区,而fun1()中的字符串则被存储在堆栈当中,此时返回的局部变量指针为野指针。可以这样理解,fun中是取常量字符串的地址为字符串指针赋值,而fun1中是声明了一个字符数组并用字符串对它进行初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐