本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在文章中可能出现一些错误或者不准确的地方,如发现请积极指出,十分感谢。
也欢迎大家一起讨论交流,如果你觉得这篇文章对你有所帮助,记得评论、点赞哦 ~(。・∀・)ノ゙
1. 赋值运算符
赋值运算符是 C 语言中用得最多的一个运算符,我们每天都在用它。因此它的设计简便与否直接影响到了 C 语言的开发效率。语法很简单,就是将右边的值放到左边的变量里边,因为它的执行方向是自右向左,比如
int a;
a = 5;
需要注意的是赋值运算符的左边必须是一个 lvalue,变量名就是 lvalue,但常数就不是了,所以你把 5 写在赋值号的左边就会出错,比如说执行
5 = a;
编译系统会提示类似于“error: lvalue required as left operand of assignment
”的错误。很多人在这里将 lvalue
理解为左值,即“left value of the赋值运算符”,对应的将 rvalue
理解为右值。但是这是一种不完全正确的理解方式。那到底什么是 lvalue
什么是 rvalue
呢?
1.1 lvalue 与 rvalue
将lvalue
和 rvalue
理解为左值和右值实际上理解并不全面,并且常常容易犯思想上的错误。一种更合理的解释是将 lvalue
理解为 locator value(特定位置的值),rvalue
则应该是 value of an expression(表达式的值)。比如尝试执行下面这段代码
#include <stdio.h>
int main()
{
int a = 5;
++(a++);
return 0