您的位置:首页 > 其它

char*和char[]

2015-05-29 20:11 239 查看
静态存储区存放:全局变量,常量,用static修饰的变量和常量

栈存放:函数中局部的非static修饰的变量

堆存放:用malloc或new动态开辟的变量

char a[]="world";
char* b="world";
a[0]='f';//OK,不会出错
b[0]='f';//运行时出错


解释:

char a[]="world",是在栈中分配空间,a[]="world"; 就是把静态区的内容复制到栈所以可以改变值。

char * b="world"中,b是临时变量在栈中分配,执行world的地址,而world是在常量区,所以不能改变它的值。

char * b="world"等同于const char b[]="world";

来自:http://bbs.csdn.net/topics/300160098
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: