gpt4 book ai didi

C 中左值和右值的条件

转载 作者:太空狗 更新时间:2023-10-29 15:52:42 25 4
gpt4 key购买 nike

这是我读到的关于左值的一些定义

  1. 可与 & 运算符一起使用的表达式。即如果 &(expression) 不是错误,则表达式是左值

  2. 导致对象不是临时的表达式

  3. 左值表达式可以同时用于 = 运算符的 RHS 和 LHS

  4. 右值表达式只能用在 RHS 上

如有错误请指正

问题来了

我读到++x 是左值,x++ 是右值

int i = 0;
printf("%p",(void*)&++i);

如果是这样,为什么这是一个错误?

如果左值表达式可以用在lhs上

int i = 0;
++i = 10;

为什么我不能使用上面的语句??上面都导致错误

更新:以上两个语句在 C++ 中都可以

最佳答案

++ii++ 都不是左值。

您可能会想到 *x++*++x 都是左值(如果 x 具有指针类型)。

关于C 中左值和右值的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16399485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com