C语言中什么叫做左值
2017-01-15
展开全部
左值就是在赋值中可以放在赋值操作符两边的值,比如:
int a = 1;
double b = 2.0
a = b;
b = a;
这里a和b都是左值,一切变量都是左值,但const变量是例外。
*p是一个左值,和变量一样,只要在*p的右边加上赋值运算符,就可改变*p的值。
如果p是一个指向常量的指针,*p就是一个不能修改的左值,即它不能被放到赋值运算符的左边。
i和 -i 都是表达式
但一个是左值(i),一个是右值(-i)。
++,--这两种操作符要求作用于左值,所以i++合法,(-i)++不合法。
不严谨的讲,左值右值的区分在于位于等号的那一侧,左侧的是左值,通常是一个变量,右侧的是右值,可以是一个变量,或者是一个表达式。
int a = 1;
double b = 2.0
a = b;
b = a;
这里a和b都是左值,一切变量都是左值,但const变量是例外。
*p是一个左值,和变量一样,只要在*p的右边加上赋值运算符,就可改变*p的值。
如果p是一个指向常量的指针,*p就是一个不能修改的左值,即它不能被放到赋值运算符的左边。
i和 -i 都是表达式
但一个是左值(i),一个是右值(-i)。
++,--这两种操作符要求作用于左值,所以i++合法,(-i)++不合法。
不严谨的讲,左值右值的区分在于位于等号的那一侧,左侧的是左值,通常是一个变量,右侧的是右值,可以是一个变量,或者是一个表达式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询