相关疑难解决方法(0)

无法理解错误条件和左值

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

#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;
}
Run Code Online (Sandbox Code Playgroud)

我在STATEMENT 3中说错了

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

我期望STATEMENT 1和3的输出相同,因为两个地址都是相同的.

我还期望STATEMENT 2的输出为5&STATEMENT 4为6.

我抬起头,发现了一个类似的问题:Lvalue需要错误

我在那个问题上理解了这个问题.从评论到上面提到的问题的第一个答案,我认为左值是可以存储某些东西的东西.

但我仍然无法理解为什么&(a ++)或&(++ a)应该给出错误.任何帮助将不胜感激.

谢谢您阅读此篇.

[编辑]感谢您的回答.如果可能的话,请包括参考,其中讨论了这些表达的确切执行顺序或性质.这样,像我这样的新手不会因为这些微不足道的问题而困扰社区.

c compiler-errors lvalue

2
推荐指数
1
解决办法
133
查看次数

标签 统计

c ×1

compiler-errors ×1

lvalue ×1