左值和右值是什么意思 C语言中什么叫做左值?
C语言中什么叫做左值?
左值是指可以访问的表达式。简言之,等号左边可以出现的是左值。例如:另外,也可以有不是变量的左值:在这里,getref()返回一个全局变量的引用,该全局变量的值有一个固定的位置,因此它是一个左值。右值是指没有名称的值,它只出现在表达式的计算过程中,即在等号的右边。例如:getname()返回函数中构造的字符串。你可以把它的值赋给一个变量,但它是一个临时对象,我们不知道它的值在哪里。因此,getname()是一个正确的值。什么是左值和右值?什么是正确的价值观?c11中新引入了右值引用。它是一种只与正确价值相结合的参照。它不同于用&;表示的左值引用。与左值引用一样,它也可以是常量或非常量,但在实际应用中我们不会使用常量的右值引用(您可以想想原因)。让我们看一些例子:从这些例子中,我们可以看到const的左值引用可以绑定到右值,non-const的左值引用不能绑定到右值,右值引用可以绑定到右值。那么,正确的价值参考如何帮助我们解决问题呢?让我们继续讨论右值引用作为函数参数的行为。假设我有以下两个函数:第一个printreference函数将常量左值引用作为参数。从前面的例子中,我们知道它可以同时接受左值和右值。但是,当右值引用的第二个printreference过载时,右值将首先绑定到第二个printreference。这一点可以通过以下代码验证:输出是:
~]=和*=具有相同的含义,只是一个乘法和一个加法。
让我们首先解释=和的含义,这意味着左值和右值相加,结果分配给左值。例如,在a=1b=2A=B之后,a=3B=2。a的值是2。在C中,有介词和后置词,如AA。单独使用时,没有区别。它们都是自加1。有手术就有区别。介词自加1后参与运算,后置词自加1后参与运算。例如,假设a=1,B=2,a=B意味着B=2首先参与a=B运算,a=3,然后B加1,B=3;如果B被B代替,a=B意味着B首先加1,B=4,然后参与a=B运算,a=4。
左值和右值是什么意思 左值和右值的区别 c语言中左值是什么意思
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。