c++ - 一个变量在 C++ 中如何以及在哪里可能没有关联的名称?
问题描述
在 C++17 标准中声明(强调我的):
“通过声明非静态数据成员或对象以外的引用来引入变量。变量的名称(如果有)表示引用或对象。”
来源:ISO/IEC 14882:2017 (C++17), §6/6 - “基本概念”
为什么是“如果有”?变量可以在 C++ 中省略名称吗?
如果我看cppreference:
“在 C++ 中,变量实际上只是保留给程序使用的一小块内存。您使用变量名来引用它,因此您无需担心它在内存中的位置(尽管您可以找到取出它的内存地址,甚至指定它的位置,如果你愿意的话)。”
或维基百科(我知道这不是最好的来源,但仍然很常见):
“在计算机编程中,变量或标量是与相关符号名称配对的存储地址(由内存地址标识),其中包含称为值的一些已知或未知数量的信息。变量名称是通常的方式除了引用变量本身,还引用存储的值,具体取决于上下文。”
来源:https://en.wikipedia.org/wiki/Variable_(computer_science)
这表示变量应始终提供与其关联的名称,无论引用的对象/值是否被它访问。
变量在 C++ 中是否可能没有名称?
如果是,如何以及在哪里(如果可能有多种情况)?
或者如果我误解了某些东西,那么“如果有的话”如何解释?
有关的:
解决方案
正如评论中提到的,
void foo(int) {}
// ^
定义一个没有名字的变量。
变量是由非静态数据成员或对象以外的引用的声明引入的。
它显然不是参考,但它是一个对象吗?是的。
对象是由定义创建的,[...]
并且函数定义的参数是定义([basic.def]/2)。
推荐阅读
- r - map_dfr 并根据 R 中的列将行绑定在一起
- java - 在 Spring Boot 应用程序中使用 Filter 修改 ServletRequest
- reactjs - 无法让 `lodash.debounce()` 正常工作?多次执行......(反应,lodash,钩子)
- c - 如何在不使用的情况下实现功能
? - css - CSS中的calc函数多久执行一次?
- java - 如何验证 Scanner 的输入是 int?
- python - 我有一个定义两个值的 With-Statement,它给了我一个值错误。为什么,以及如何解决这个问题?
- sql-server - 使用带有 INSTEAD OF INSERT 触发器的视图时,INSERTED 表会出错
- json - 带有包含 JSON 数据的变量的 curl PUT
- php - 如何将 laravel Elequent 转换为收藏?