【C语言点滴】20101124期 char* p 与 char p[] 区别
来源:互联网 发布:vf数据库视频教程网易 编辑:程序博客网 时间:2024/04/29 09:10
c语言里面 char * 和 char [] 的区别
#include "stdio.h"
char* fun()
{
char* p = "hello";
return p;
}
char* fun1()
{
char p1[] = "hello";
return p1;
}
int main()
{
printf( fun() );
printf( fun1() );
return 0;
}
在上面的程序里面一般很容理解 p 和 p1 都是局部变量。但是运行的结果有一个乱码
p1指向的字符数组在函数返回后,被清空了。 p所指向的字符串则没有被当做局部变量。
code area存放程序的代码
date area存放程序的全局数据和静态数据
heap area存放程序的动态数据
stack area存放程序的局部数据
也就是说 p1[] 被理解为一个局部变量(字符数组),分配的空间在stack area里面。而p后面的字符串被当做了一个常量(const),放在date area。
所以在函数返回后,stack被清空,p[]数组里面的数据就没有了。而pp的数组还存在。
- 【C语言点滴】20101124期 char* p 与 char p[] 区别
- 解析char *p与char p[] 区别
- char *p 与char p[]区别,strcpy_s
- char *p 与 char p[]的区别
- char *p 与 extern char*p区别
- 解析char *p与char p[] 区别
- char (*p)[]与char *p[]
- char *p与char p[]
- char* p与char p[]
- char *const p;与 const char * p;的区别
- const char *p与char * const p区别
- const char *p与char * const p区别
- 编程:char *const p;与 const char * p;的区别
- char* p="abc"与char p[] = "abc"区别
- 函数参数为 "char* p" 与 "char*& p" 的区别
- const char *p与char * const p的区别
- char *const p 与 const char * p 的区别
- char * const p与 char const * p 区别
- EditView 阻止软键盘自动弹出
- 有才人的画法
- SQL Server管理器无法连接远程数据库
- Beej Network Programming Note
- java存储数据的几种方式
- 【C语言点滴】20101124期 char* p 与 char p[] 区别
- Apache2 httpd.conf配置文件中文版详解
- java 递归的实习
- 跨浏览器兼容测试8大利器
- 多个ftp登陆用户权限不同
- 双色球选号器的java实现
- linux man 手册各个章节的意义和用法
- jxl导出图片到excel
- SQL Server 索引结构及其使用(三)