C语言中左值概念的一些汇总

1、左值是一个表达式,可以读取或者修改它所引用的对象。对象是一块内存区域,可以读取或者修改它的值。

2、左值也可以是只读。

3、能放到等号左边(对其赋值)的一定是左值,但并不是所有的左值都可以放到等号左边(对其赋值)。

4、左值可以是不完整类型但不能是void类型

5、除了字符串字面常量外,其他任何结果为数组类型的表达式均不可以作为左值。

 


相关博文

This entry was posted in 程序设计 and tagged . Bookmark the permalink.

10 Responses to C语言中左值概念的一些汇总

  1. 大D says:

    学习了,小D在学习中总是会用,到不懂其概念,比如栈、左值什么的

  2. gaosentao says:

    如果左值可以是只读,那么怎么改变其值呢?[e07]
    能讲的更细致吗?谢谢!

    • davelv says:

      回复 gaosentao:只读的左值不能改变其值。例如 const int a=0; a是一个左值,你在接下来的代码中不能给a赋值。

  3. KBTiller says:

    左值可以是不完整类型但不能是void类型
    =============
    这个怎么讲?
    能否给个例子

    • davelv says:

      回复 KBTiller:例如声明一个长度未知的数组 int array[];
      然后你可以使用单目运算符&对array进行运算。这个运算符要求后面必须是左值或者函数,很明显array不是函数,是一个不完全类型左值。

发表评论

电子邮件地址不会被公开。 必填项已用*标注