C语言入门与提升(2)—— C语言中的函数、数学运算符、选择与循环控制结构
前言:
C语言作为面向过程的语言,所以不涉及类与继承的概念,那么函数与分支控制结构就更加重要了。一些复杂的操作建议写到函数中,方便进行debug。
首先说明一下C语言中的运算符
= 赋值
+ - * / () 加减乘除括号,满足基本的运算律
% 求余数
& | ^ ~ 位运算,分别表示 与 或 异或 非
<< >> 左移和右移
这些运算符都很简单,但是有一些妙用可以提升我们的代码质量,比如说
将求余运算符用在奇偶判断中,也可以用于将随机数分类
位运算是对数据的按位进行运算,这里举个使用中的小例子:
while(scanf("%d",&a) != EOF) 和 while(~scanf("%d",&a))效果是一样的,前面一句之前已经讲过了,后边这句的话实际上是 while(~scanf("%d", &a) != 0), 而我们都知道,读取到末尾或者错误时返回值EOF,用二进制表示就是各位全都是1,那么按位取反之后不就是0了嘛!
针对左移和右移运算,我们可以考虑数据的二进制表示,每一位相当于2的n-1次方,那么全部都右移一位,是不是相当于除以2了呢?而且,如果是一个奇数右移一位之后,相当于(奇数 - 1)/ 2 ,自动