char* fun()
{
char* p = "hellofuckyoubitch";
return p;
}
char* fun1()
{
char p[] = "hellofuckyoubitch";
return p;
}
int _tmain(int argc, _TCHAR* argv[])
{
printf( fun() );
printf( fun1() );
getchar();
return 0;
}
fun()能顺利打印出字符串,而fun1()则不能打印正确结果
说明第一种情况的字符串是分配在常量区
第二种情况的字符串是分配在函数的堆栈里,函数返回时即被销毁了。