相关疑难解决方法(0)

为什么字符串文字是l值,而所有其他文字都是r值?

C++ 03 5.1主要表达式
§2:

文字是主要表达方式.它的类型取决于它的形式(2.13).字符串文字是左值; 所有其他文字都是右值.

这背后的理由是什么?
据我所知,字符串文字是对象,而所有其他文字都不是.并且l值总是指对象.

但问题是为什么字符串文字是对象,而所有其他文字都不是?
这个理由在我看来更像是鸡蛋或鸡肉问题.

我理解这个问题的答案可能与硬件架构有关,而不是C/C++作为编程语言,但我想听到同样的看法.

注意:我将此问题标记为c&c ++,因为C99标准也有类似的引用,特别是§6.5.1.4

c c++ literals string-literals

53
推荐指数
4
解决办法
5760
查看次数

数组是指针?

可能重复:
数组名是C中的指针吗?

数组和指针在C和C++中的实现方式是否不同?我遇到过这个问题,因为在这两种情况下我们都从元素的起始地址访问元素.所以,他们之间应该有密切的关系.请解释它们之间的确切关系.谢谢.

c c++ arrays pointers

17
推荐指数
5
解决办法
1万
查看次数

数组和右值

$ 4.2/1 - "类型的左值或右值"数组"N T"或"未知T的数组"可以转换为"指向T的指针"的右值.结果是一个指向第一个元素的指针阵".

我不知道如何在初始化/声明期间获得数组类型的rvalue?

c++ arrays rvalue lvalue lvalue-to-rvalue

9
推荐指数
2
解决办法
3030
查看次数

标准转换:数组到指针的转换

这是ISO的标准:标准转换:数组到指针的转换:$ 4.2.1

可以将"数组NT"或"未知T的数组"的左值或右值转换为"指向T的指针"的右值.结果是指向数组的第一个元素的指针.

任何人都可以通过示例程序解释这个问题.

我已经看过这些链接,但我无法理解:

数组和右值

我想我可能想出了一个rvalue数组类型的例子

c++ arrays

4
推荐指数
1
解决办法
1万
查看次数