”string-literal" 不是指针,是拥有静态存储期的 char 数组类型左值表达式。该数组只能读不能写。由于历史遗留问题, C 的字符串字面量没有 const 限定,最好用 const char* 指针指向它。
(另外字符串字面量在初始化字符数组时,实现上本身不必是独立的数组)
能用它初始化或赋值指针是因为数组到指针隐式转换(数组类型表达式在多数情况下隐式转换成指向其首元素的指针类型表达式)。
你要用“字面量”初始化 int* 指针也可以,只要用复合字面量(复合字面量是左值):
int *p = &(int){ 123 };
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。