美文网首页
什么是左值和右值?

什么是左值和右值?

作者: 击石小记 | 来源:发表于2020-04-13 10:15 被阅读0次

    什么是左值和右值?

    故名思意,左值就是能出现在赋值符号左边的东西,右值就是能出现在赋值符号右边的东西。
    具体说来,左值应当标识了一个可以存储结果值得地点,而右值指定了一个值。

    看几个例子:

    1. a变量标识了一个内存地址,可以作为左值;而b+2 指定了一个值,无法标识一个定制,最终将 b+2=a 最终将a存储到哪个地址无法预测

      a = b+2  // 合法
      b+2 = a  // 非法
      
    2. 表达式 a[b+!] 标识了一个位置,可以作为左值

       int a[3];
       a[b+1] = 0;
      
    3. pi指针得值,是内存的某个地址,使机器指向那个地址。 当pi作为左值使用,标识了需要修改的地址,作为右值使用时,就提取当前存储于这个位置的值。

      int a,*pi;
      pi = &a;
      *pi = 20;
      

    综上,无论是变量还是表达式作为左值,都应当能标识一个地址。
    操作结果类型为地址的操作符有:

    操作符 描述
    [] 下标引用
    . 访问结构
    -> 访问结构指针成员
    * 间接访问

    相关文章

      网友评论

          本文标题:什么是左值和右值?

          本文链接:https://www.haomeiwen.com/subject/mxnwmhtx.html