目录
1 操作符
C语言中有多种操作符,用于执行各种操作和计算。以下是一些常用的C语言操作符:
- 算术操作符:用于执行基本的算术运算,如加法
+
、减法-
、乘法*
、除法/
、取余%
等。 - 关系操作符:用于进行比较操作,返回一个布尔值(0表示假,非0表示真),如相等
==
、不相等!=
、大于>
、小于<
、大于等于>=
、小于等于<=
等。 - 逻辑操作符:用于进行布尔运算,如逻辑与
&&
、逻辑或||
、逻辑非!
等。 - 赋值操作符:用于将一个值赋给一个变量,如赋值
=
- 位操作符:用于对二进制位进行操作,如按位与
&
、按位或|
、按位异或^
、按位取反~
、左移<<
、右移>>
等。 - 条件操作符(三目运算符):用于根据条件选择不同的值,语法为
条件 ? 结果1 : 结果2
。 - 自增和自减操作符:用于对变量进行自增或自减操作,分别为
++
和--
。 - 指针操作符:用于操作指针变量,如取地址
&
、取值*
。 - 成员操作符:用于访问结构体或联合体的成员,使用
.
。 - 条件操作符:用于判断条件,并根据条件结果来执行代码块。
- 逗号操作符:用于连接多个表达式,以逗号分隔。
#include <stdio.h>
int main() {
int a = 7 / 2;
int b = 7 % 2; // 取模
int c = (int)3.14; //强制转化
if (1 && 0)
{
printf("逻辑与");
}
if (1 || 0)
{
printf("逻辑或");
}
int d = (a > b ? a : b); //三目运算符
printf("%d\n", d);
//printf("%d\n", arr1[8]);
return 0;
}
以上只是C语言中的一些常用操作符,实际上C语言中还有其他一些特殊的操作符,用于执行更复杂的操作。操作符的优先级和结合性也是需要注意的,可以使用括号来明确优先级和执行顺序。
2 算术操作符
注意:除法分为整数除法(7/2=1)和小数除法(7.0/2=3.5)(小数除法要求必须有一个是小数)
% 取模 7%2 = 1
3 移位操作符
左移操作符<< 左边丢弃,右边补0,左移可以×2
右移操作符>>右边丢弃,左边补原符号位(算数移位)(或0,逻辑移位),一般是算术右移,取决于编译器,基本都是算术右移。
二进制:分为原码,反码、补码。正数的原码、反码、补码相同,原码等于二进制,int类型,四个字节,一个字节8个比特位,总共有32个二进制位。最高位为符号位0表示正数,1表示负数,得到负数的原码。负数原码最高位不变,其它位取反,表示负数的反码,给反码加1得到负数的补码。整数在内存中存的是补码。移位移动的是补码,
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 3;
int b = a >> 1; // 移位不能写负数
int c = a << 1;
printf("%d ", b);
printf("%d ", c);
return 0;
}
4 位操作符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
// &按位与,|按位与,^按位异或,负数是补码注意
int a = 3;
int b = 0;
int c = a & b; // 0
int d = a | b; // 3
int e = a ^ b; // 3
printf("%d ", c); // %d可以打印有符号整数
printf("%d ", d);
printf("%d ", e);
return 0;
}
5 赋值操作符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 3;
int b = 5;
int c = 10;
a = b = c + 1;
printf("%d ", a); // 连续赋值
printf("%d ", b); // 为 11 11
return 0;
}
6 单目操作符
7 关系操作i符
8 逻辑操作符
不是二进制比较
9 条件操作符
三目操作符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 3;
int b = 0;
int c = 0;
(a > 5) ? (b = 3) : (b = -3);
c = (a > 5) ? 3 : -3;
printf("%d ", b); // -3
printf("%d ", c); // -3
return 0;
}
10 逗号表达式
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 3;
int b = 0;
int c = (b = a+b,a+1,b+1);
printf("%d ", c); // 4
return 0;
}