引入
大家好,我是尉迟洛林。这是C语言入门笔记的第三篇。
上一篇我们总结了数据类型。而在写代码时,我们经常会用到一些简单的操作符,比如 +、-、/、% 这些算术符号。
所以这篇,我们就来梳理一下前期最常用到的几个操作符。
PS:本文只总结前期用得上的操作符和简单用法,更深入的内容会放在下一篇专门讲操作符的文章里。
操作符
1算术操作符:+、-、、/、%
C语言提供了一系列操作符来方便我们进行数学运算,其中最基础的就是算术操作符:+、-、、/、%。它们都是双目操作符(也叫运算符),也就是说,操作符两边各需要一个操作数。
· + 和 -:用于加法和减法。
· *:用于乘法。
· /:用于除法。
特别注意:如果除号 / 的两个操作数都是整数,执行的是整数除法,结果只保留整数部分,小数部分会被直接丢弃。例如,6 / 4 的结果是 1,而不是 1.5。如果要得到小数结果,至少需要让其中一个操作数是小数,比如 6.0 / 4 的结果就是 1.5。
· %:用于取模(求余)运算,
它只能用于整数。例如,6 % 4 的结果是 2。负数求模的规则:结果的正负号由第一个操作数的正负号决定。例如:
· 11 % -5 结果是 1
· -11 % -5 结果是 -1
· -11 % 5 结果是 -1
2赋值操作符:= 和复合赋值
2.1 赋值符 =在变量创建时给它一个初始值叫初始化。变量创建好之后,再给它一个值,就叫赋值。
· 连续赋值:比如 c = b = a + 3;,它的执行顺序是从右向左依次赋值。虽然C语言支持这种写法,但为了代码清晰好懂,建议还是拆开来写,比如:
cb = a + 3;c = b;⚠️ 一个重要区别:
· 一个局部变量如果不初始化,它的值是随机的。
· 一个全局变量如果不初始化,它的值会默认初始化为0。
2.2 复合赋值符我们经常需要对一个变量进行自增、自减之类的操作。
C语言提供了复合赋值符,能让我们写代码更方便,比如:
ca += 3; // 等同于 a = a + 3b -= 5; // 等同于 b = b - 5常用的复合赋值符有:+=、-=、*=、/=、%=。
还有一些以后会讲到的:>>=、<<=、&=、|=、^=。
3.单目操作符:++、–、+、-
如果一个操作符只需要一个操作数,就称为单目操作符。
自增 ++ 和自减 –
· 前置++:int b = ++a; 计算口诀是先+1,后使用。(a的值先加1,再把新值赋给b)
· 后置++:int b = a++; 计算口诀是先使用,后+1。(a的值先赋给b,a自己再加1)
– 的用法和 ++ 完全一样,只是变成了减1。
正负号 +、-这里的 +(正号)和 -(负号)和我们小学数学里的用法一样,也是单目操作符。
4.强制类型转换有一种特殊的操作符是强制类型转换,它的语法很简单:(目标类型) 表达式
例如:cint a = (int)3.14; // 将浮点数3.14强制转换成int类型,结果为3(只取整数部分)
俗话说,强扭的瓜不甜。强制类型转换最好在万不得已时才用。如果能通过其他更自然的方式实现,那才是更好的选择。
写在最后
感谢你看到这里。以上就是我们在C语言初期最常打交道的几类操作符。这些操作符看起来简单,但组合在一起时,却很容易写出让自己都犯晕的代码。
我的建议是,在初学阶段,不用追求各种花哨的写法,怎么清晰怎么来,哪怕多写两行,也比写一行让人需要“脑筋急转弯”的代码要好。
想继续和你聊聊:
· 你在初学时,有没有被 i++ 和 ++i 绕晕过?
后来是怎么记住的?
· 整数除法和取模运算,有没有让你踩过什么坑?
· 对于操作符的优先级,你有什么好的记忆方法吗?
欢迎在评论区分享你的故事和困惑,我这个小白很需要提前避避雷。如果路过的前辈发现任何不准确的地方,也恳请指点,万分感激!
如果觉得这篇笔记对你有帮助,可以点个关注,这是我持续写下去的动力。我们下篇见!