C++ 03 5.1主要表达式
§2:
文字是主要表达方式.它的类型取决于它的形式(2.13).字符串文字是左值; 所有其他文字都是右值.
这背后的理由是什么?
据我所知,字符串文字是对象,而所有其他文字都不是.并且l值总是指对象.
但问题是为什么字符串文字是对象,而所有其他文字都不是?
这个理由在我看来更像是鸡蛋或鸡肉问题.
我理解这个问题的答案可能与硬件架构有关,而不是C/C++作为编程语言,但我想听到同样的看法.
注意:我将此问题标记为c&c ++,因为C99标准也有类似的引用,特别是§6.5.1.4
可能重复:
数组名是C中的指针吗?
数组和指针在C和C++中的实现方式是否不同?我遇到过这个问题,因为在这两种情况下我们都从元素的起始地址访问元素.所以,他们之间应该有密切的关系.请解释它们之间的确切关系.谢谢.
$ 4.2/1 - "类型的左值或右值"数组"N T"或"未知T的数组"可以转换为"指向T的指针"的右值.结果是一个指向第一个元素的指针阵".
我不知道如何在初始化/声明期间获得数组类型的rvalue?
这是ISO的标准:标准转换:数组到指针的转换:$ 4.2.1
可以将"数组NT"或"未知T的数组"的左值或右值转换为"指向T的指针"的右值.结果是指向数组的第一个元素的指针.
任何人都可以通过示例程序解释这个问题.
我已经看过这些链接,但我无法理解: