无法理解左值的错误条件

2023-12-11

我是编程初学者,正在尝试一些组合。

#include<stdio.h>


int main()
{
int a=5;

printf("%d",&a); // STATEMENT 1
printf("\n%d",a); //STATEMENT 2
printf("\n%d",&(a++)); //STATEMENT 3
printf("\n%d",a);  //STATEMENT 4

return 0;
}

我在 STATMENT 3 中收到一个错误:

[错误] 需要左值作为一元 '&' 操作数

我预计语句 1 和 3 的输出相同,因为两个地址相同。

我还预计 STATMENT 2 的输出为 5,而 STATMENT 4 的输出为 6。

我查了一下,发现了一个类似的问题:左值所需错误

我理解该问题中的问题。从评论到上述问题的第一个答案,我认为左值是可以存储某些内容的东西。

但我仍然不明白为什么 &(a++) 或 &(++a) 应该给出错误。 任何帮助将不胜感激。

谢谢您阅读此篇。

[Edit]谢谢您的回答。如果可能,请包含讨论此类表达式的确切执行顺序或性质的参考文献。 这样像我这样的菜鸟就不会因为这些琐碎的问题而困扰社区了。


a++增加你的a并返回old的价值a. The &运算符返回变量的地址。但返回的old的价值a没有地址。这是一个非常临时的事情,而不是左值。这就是为什么你不能获取它的地址。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法理解左值的错误条件 的相关文章

  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • 用于连接 DataTable 上的动态列的动态 LINQ

    我目前遇到的情况不确定如何继续 我有两个从数据库填充的数据表 我还有一个可用的列名称列表 可用于将这两个数据表连接在一起 我希望编写一组 LINQ 查询 这些查询将 显示两个数据表中的行 内部联接 用于从一个数据表更新另一个数据表 显示一个
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 为什么 f(i = -1, i = -1) 是未定义的行为?

    我正在读关于违反评估顺序 http en cppreference com w cpp language eval order 他们举了一个令我困惑的例子 1 如果标量对象上的副作用相对于同一标量对象上的另一个副作用是无序的 则行为未定义
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 日期格式不起作用?

    String selectedDate 2012 createdMonth createdDay SimpleDateFormat dateFormat new SimpleDateFormat yyyy MM dd try created
  • 在适用于 tvOS 12 的 TVUIKit 中使用 TVPosterImage

    tvOS 12 有一个新框架TVUIKit 它引入了锁定视图 我感兴趣的课程是电视海报视图 基本上是这样设计的 斯威夫特 4 2 open class TVPosterView TVLockupView One may use UICont
  • 在 x86-64 AT&T 汇编中,地址前面的星号 * 意味着什么?

    下面这行是什么意思 401147 ff 24 c5 80 26 40 00 jmpq 0x402680 rax 8 内存地址前面的星号是什么意思 另外 当内存访问方法缺少第一个寄存器值时 这意味着什么 通常它类似于 register rax
  • 更好地理解序言

    我试图理解 Prolog 以及它如何使用解析算法 我发现了这个例子 hates 1 2 hates 2 3 hates 3 4 jealous A B jealous A C jealous C B jealous A B hates A
  • 为什么 std::mutex 需要很长且极不规则的时间来共享?

    此代码演示了互斥体在两个线程之间共享 但一个线程几乎始终拥有它 include
  • ASP.NET MVC 获取文本框输入值

    我有一个文本框输入和一些单选按钮 例如 我的文本框输入 HTML 如下所示
  • 如何在 VSCode 中包含 F# 的 Akka.net 框架

    我正在尝试使用我在互联网上找到的这个示例在 VSCode 中使用 Akka NET for F Code ActorSayHello fsx time on load Bootstrap fsx open System open Akka
  • 样式不适用于 Angular 中的innerHTML [重复]

    这个问题在这里已经有答案了 我将 html 作为 innerHtml 传递给我的视图 以下是我的看法 div div 如果我通过下面的代码 它工作正常 this someHtmlCode div b This is my HTML b di
  • Eclipse Mars - 设置 C++ 项目的默认设置(默认设置为 c++11)

    我从其他答案中发现 在我的 Eclipse Mars CDT 中 我可以使用以下命令设置 C 11 方言 项目 gt 属性 gt C C 构建 gt 设置 gt 工具设置 gt GCC C 编译器 gt 方言 gt ISO C 11 来自下
  • MySql 可以在不作为主键的情况下使用自增吗

    我使用 GUID 作为所有其他表的主键 但我有一个要求 需要有一个递增的数字 我尝试在表中创建一个具有自动增量的字段 但 MySql 抱怨它需要成为主键 我的应用程序使用 MySql 5 nhibernate 作为 ORM 我想到的可能的解
  • 用户控件使用错误的数据上下文

    我有一个以这种方式在父控件中使用的 UserControl
  • 读取文本文件的最后一行

    我需要知道如何读取文本文件的最后一行 我需要找到该行 然后将其处理到 SQL 数据库中 我一直在阅读并搜索网络 但正在努力寻找正确的方法来做到这一点 IE 找到文件的最后一行 处理文件的最后一行 有两种方法 简单但效率低下 或者极其复杂但有
  • 自动完成的算法?

    我指的是当用户在 Google 中输入搜索词时用于提供查询建议的算法 我主要感兴趣的是 1 最重要的结果 最有可能的查询而不是任何匹配的结果 2 匹配子串 3 模糊匹配 我知道你可以使用 Trie 或广义 trie 来查找匹配项 但它不能满
  • Python Pandas - 从数据框中按类别绘制多个条形图

    我的数据框看起来像 df pd DataFrame data ID 1 1 1 2 2 2 Value 13 12 15 4 2 3 Index ID Value 0 1 13 1 1 12 2 1 15 3 2 4 4 2 2 5 2 3
  • PHP 中的 Cookie 不持久?

    如何让 cookie 持久保存在 php 中 给 cookie php jar php 按该顺序运行代码会给出输出 array 0 注意 未定义的索引 jar php 第 3 行中的lid 嵌入代码来自jar php in give coo
  • PHP readdir() 不按字母顺序返回文件

    我正在阅读一个包含一些图片的目录 例如使用 readdir 的一个非常简单的实现 如下所示 if handle opendir path while false szFilename readdir handle if szFilename
  • Tensorflow 中的向量移位(滚动)

    假设我们确实想使用 Keras TensorFlow 处理图像 或 ndim 向量 为了进行奇特的正则化 我们希望将每个输入向左移动随机数量的位置 溢出的部分重新出现在右侧 如何查看和解决 1 TensorFlow 的 numpy roll
  • 在输出四开本中显示块选项

    有没有办法在输出中包含块选项 例如 在这种情况下 title Untitled format html editor visual r code fold true label example 1 1 如何获得 code fold true
  • Java 的 UNIX 套接字实现? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我意识到 由于 UNIX 套接字是特定于平台的 因此必须涉及一些非 Java 代码 具体来说 我们有兴趣使用 JDBC 连接到仅启用了 UNIX 域
  • 无法理解左值的错误条件

    我是编程初学者 正在尝试一些组合 include