Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1640486
  • 博文数量: 126
  • 博客积分: 1541
  • 博客等级: 上尉
  • 技术积分: 1914
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-20 11:14
文章分类

全部博文(126)

文章存档

2014年(21)

2013年(42)

2012年(63)

分类: C/C++

2012-06-24 20:34:26

#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);
}
阅读(1191) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~