C语言提供了非常丰富的操作符,使得C语言使用起来非常的方便
算数操作符:
加 减 乘 除 取模
【+ - * / %】
注:除号的两端都是整数的时候执行的是整数的除法,如果两端只要有一个浮点数,那么此时执行的就是浮点数的除法。
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = 7 / 2;int b = 7 % 2;float c = 7 / 2.0;printf("%d\n", a);printf("%d\n", b);printf("%f\n", c);// 获取小数点后面1位printf("%.1f\n", c);return 0;
}
移位操作符:
[ << 左移操作符 >> 右移操作符 ]
C语言中的左移操作符主要是针对二进制进行操作,用于嵌入式系统尤其是51单片机中,配置单片机寄存器。
按位左移:二进制数向左边移动,然后右边补0.
x << n 把x中的每一位向左平移N为,右边空位补0,左边移出的数丢弃,写法a = a << 2, b = a << 3, c = a << b;
按位右移:分为算术右移和逻辑右移,逻辑右移,向右边平移,移动的舍去,左边补0
x>>n 把x中的每一位向右平移n位,当x为有符号数时,左边空位补符号上的值,称为算术移位;当x为无符号数时,左边空位补0,称为逻辑移位;右边移出的数丢弃。
写法:a=a >> 2;b=a >> 3;c=a >> b;
算术右移:用于有符号的数
逻辑右移 :用于无符号的数
位操作符:
& ^ |
按位与&:全真为真,有假为假
1 & 1 = 1 , 1 & 0 = 0, 0 & 0 = 0
|
按位或 |: 有真为真,全假为假
1 | 0 = 1, 0 | 1 = 1, 0 | 0 = 0
按位异或 ^ 相同为0,不同为1
1 就是 0 , 0 就是 1.
赋值操作符:
【= += -= /= *= ^= | = >>= <<=】
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {// 创建变量的同时给他一个值叫做变量的初始化int a = 0;// 赋值a = 20;// 也是赋值 a += 3; / a -= 3, a *= 3. a = a + 3; return 0;
}
单目运算符
在C语言中非0表示假 0 表示真 ! 的作用数把假的变成真,真的变成假
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int flag = 0;if (!flag) {printf("hehe\n");}return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = -10;int b = -a;printf("%d\n", b);return 0;
}
sizeof ()是一个操作符,而且是一个单目操作符
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int a = 10;// 计算A所占的字节大小printf("%d\n", sizeof(a));printf("%d\n", sizeof(int));printf("%d\n", sizeof a);return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>int main(void) {int arr[10] = { 0 };// 这里计算的是整个数组的大小,单位是字节printf("%d\n", sizeof(arr));printf("%d\n", sizeof(arr[0]));// 获取数组的长度,总大小除以一个字节的大小printf("%d\n", sizeof(arr) / sizeof(arr[0]));return 0;
}
【~ 对一个数的二进制位进行取反:1就是0 ,0就是1】
前置 -- 和 后置 -- ,前置 ++ 和后置 ++
【 先使用后++】
【先 ++ 后使用】
同理 -- 也是一样的原理
初识C语言中的类型转换:
关系操作符:
[ > < = == != >= <= ]
在C语言中 = 表示赋值的意思,将等号左边的值赋值给 = 右边的变量,而 == 号找C语言中表示比较的意思,用于比较== 两边的值是否相等。
【逻辑与&& -------- 并且 , 逻辑或 ---------或者】
逻辑与 和 逻辑或操作符 && 两边的值都是true的时候成立,|| 逻辑两边的值有一个值是true就成立。
【条件操作符------------三目运算符】
条件操作符:
表达式1 ? 表达式2 : 表达式3
如果表达式1为true 那么输出表达式2,表达式1为假,那么输出表达式3
三目运算符:也可以称之为逗号表达式【逗号表达式-------就是逗号隔开的一串表达式,特点是从左向右依次计算整个表达式的结果是最后一个表达式的结果】 。
【逗号表达式练习】
【 下标引用操作符-------[],函数调用操作符 ------- (), . -> 结构成员操作符 】
C语言在访问数组元素的时候需要给出下标:数组下标是从0开始的是是一段连续的存储空间
函数调用操作符:
C语言函数调用操作符 ---------------------->()
补充:C语言中常见的关键字
auto -----------------关键字 ,是C语言本身内置的,关键字不是自己创建出来的,是不能自己创建的
break语句 ----------- for , 循环while 循环和do ---while循环放在一起使用
const --------------- 常属性无法被修改的属性
continue ---------- 继续的意思
enum ------------- 枚举
union --------------- 联合体
extern -------------- 声明外部符号的
void ---------------(无函数的返回类型)
volatile ----------- 操作系统不要去优化语句
return -------------- 返回值
变量名的定义不能和整型变量重合,不能是C语言中提供的关键字
变量的命名规则:
1: 有意义,见名知义,使用驼峰命名法
2:变量的名字是字母 ,数字,下滑线,不能以数字开头,不能是C语言中的关键字