char *p="Hello world"与char a[]="Hello world"的区别

作者在 2011-11-29 20:52:46 发布以下内容
char *p="Hello world";
char a[]="Hello world";
"Hello world!\n"字符串字面量(string literal)——C语言源程序中用双引号包含的字符串的正式名称——有两种稍有区别的用法:
(1)用作数组初始值(如同char a[] = "Hello world!\n";的声明),它指明数组中字符的初始值。
(2)其他情况下,它会转化为一个无名的静态字符数组,可能会存储在只读内存中,这就导致它不能被修改。在表达式环境中,数组通常被立刻转换为一个指针。因此char *p = "Hello world!\n";声明把p初始化成指向无名数组的第一个元素。
摘自:《你必须知道的495个C语言问题》
默认分类 | 阅读 7034 次
文章评论,共1条
馨梦惜夕
2011-12-07 23:29
1
了解一下
游客请输入验证码
浏览48152次