#include
char *test()
{
//char *p="NULL"; //p在栈上分配的空间,生存周期为此函数;"NULL"分布常量区 生存周期是整个代码段
/* p是一个字符指针变量,存放的是常量字符串的首地址
ruturn p返回的是常量字符串“NULLN”的首地址
p是个局部变量,局部变量在每次函数调
用时分配存储空间,在每次函数返回时释放存储空间。*/
char p[]="NULL"; //p[]是在栈空间分配的 "NULL"分布栈区 生存周期是函数
/* 数组名p是一个地址常量,return p
返回的是地址常量p,函数返回就是释放了数组p(数组p不存在),
实际上返回了一个悬垂指针。*/
printf("%s\n",p);
return p;
}
void main()
{
char *p=test();
printf("%s\n",p);
while(1);
}
阅读(1182) | 评论(0) | 转发(1) |