转义字符

转义字符 释义
? 在书写连续的多个问号时,防止他们被解析为三字母词
\' 用于表达字符常量 '
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止他被解释为一个个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1-3个八进制的数字,如:\130 x
\xdd dd表示2个十六进制数字。如:\x30 0

注释

// :单行注释

/* */ :多行注释

1.代码中有不需要的代码可以直接删除,也可以注释掉

2.代码中有一些当妈比较难懂,可以加一下注释文字

选择语句

如果你好好学习,就可以拿一个好offer,走上人生巅峰

如果你不学习,毕业就等于失业,回家卖红薯

这就是选择

graph
加入比特 --> 好好学习;
加入比特 --> 不学习;
好好学习 --> 好offer;
不学习 --> 卖红薯;
int main()
{
	int input = 0;
	printf("加入比特\n");
	printf("你要好好学习吗?(1/0):");
	scanf("%d", &input);
	//判断你是不是要好好学习
	if(input == 1)
	{
		printf("好offer\n");
	}
	else
	{
		printf("卖红薯");
	}
	return 0;
}

while循环语句

int main ()
{
	int line = 0;
	printf("加入比特\n");

	while(line < 20)
	{
		printf("敲一行代码:");
		printf("%d\n", line);
		line++;
	}
	if(line >= 20)
	{
		printf("好offer\n");
	}
	
	return 0;
}

函数

//自定义函数
int Add(int x, int y)
{
	int z = x + y;
	return z;
}

int main()
{
	int num1 = 10;
	int num2 = 20;
	int sum = 0;
	int a = 100;
	int b = 200;
	//sum = num1 + num2;
	//调用函数
	sum = Add(num1, num2);
	//sum = a + b;
	sum = Add(a, b);
	printf("num = %d\n", sum);

	return 0;
}

数组

//C语言给数组的定义:一组相同类型元素的集合
int main()
{
	/*int a = 1;
	int b = 2;
	int c = 3;
	int d = 4;*/
	//int arr[10];// 定义一个存放10个整数数字的数组
	//每一个数组都有一个下标
	//下标是从 0 开始到 (数组长度 - 1)
	int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	//0-9
	int i = 0;
	while(i < 10)
	{
		printf("%d", arr[i]);
		i++;
	}
	//printf("%d\n", arr[i]);
	//arr[下标];
	//char ch[20];
	//float arr2[6];

	//char ch[20];//
	//float zrr2[15];//
	return 0;
}

操作符

算数操作符 + - / %

int main()
{
	int a = 5/2 ;//2
	//% 取模
	int a = 5%2 ;//1  
	printf("%d\n", a);
	return 0;
}

移位操作符 >> <<

int main()
{
	//移(2进制)位操作符
	// << 左移
	// << 右移
	int a = 1;
	//整型1占4个字节-- 32bit位
	int b = a << 2;
	printf("%d\n", b);
	return 0;
}

位操作符 & ^ |

int main()
{
	//(2进制)位操作
	// & 按位与
	// | 按位或
	// ^ 按位异或
	int a = 3;
	int b = 5;
	//按位与
	//int c = a & b;
	//a 转换为2进制是 011
	//b 转换为2进制是 101
	//按位都为 1 才为 1 ,按位只要有一个为 0 结果为 0
	//所以 c 的二进制是 001
	//转换为十进制是  1
	//按位或
	int c = a | b;
	//按位只要其中一个为 1 就为 1 ,全为 0 才会为 0
	//所以 c 的二进制是 111
	//转换为十进制是 7
	//按位异或
	int c = a ^ b;
	//按位不同为 1 ,按位相同为 0
	//所以 c 的二进制是 110
	//转换为十进制是 6


	printf("%d\n", c);
	return 0;
}

赋值操作符 = += -= *= /= &= ^= >>= <<=

int main()
{
	int a = 10;
	a = 20; // = 赋值  == 判断相等
	//a = a + 10;
	a += 10;//与  a = a + 10;  完全等价
	a = a & 2;
	a &= 2;
	//复合运算符(注意中间不能有空格)
	//+=  -=  *= /=  &=  ^=  >>=  <<= 

	return 0;
}

单目操作符

! 逻辑反操作

- 负值

+ 正值

& 取地址符

sizeof 计算的是变量、类型所占空间的大小,单位是字节

~ 对一个数的二进制按位取反

-- 前置、后置--

++ 前置、后置++

* 间接访问操作符(解引用操作符)

(类型) 强制类型转换

int main()
{
	int arr[10] ={0};//10个整型元素的数组
	int sz = 0;
	//10*sizeof(int) = 40
	printf("%d\n", sizeof(arr));
	//计算数组的元素个数
	//个数 = 数组总大小 / 每个元素的大小
	sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", sz);

	//int a = 10;
	////sizeof   计算的是变量、类型所占空间的大小,单位是字节
	//printf("%d\n", sizeof(a));//4
	//printf("%d\n", sizeof(int));//4
	//printf("%d\n", sizeof a);//4
	return 0;

}
// ~ 二进制取反
int main()
{
	int a = 0;//4个字节,32个bit位
	int b = ~a;//b是有符号的整型
	// ~ - 按(2进制)位取反
	//00000000000000000000000000000000
	//11111111111111111111111111111111  
	//原码、反码、补码
	//负数在内存中存储的时候,存储的是二进制的补码
	//11111111111111111111111111111111    补码
	//补码 -->  反码  二进制数减1
	//11111111111111111111111111111110    反码
	//反码 --> 原码   符号位不变  其他全部取反
	//10000000000000000000000000000001
	//最前面的1表示负号
	//没有时是正数

	printf("%d\n", b);//使用的,打印的是这个数的原码

	return 0;
}
// ++ 自加  --自减
int main()
{
	int a = 10;
	//int b = a++;//后置++ ,先使用,再++
	//printf("a = %d b = %d\n", a, b);  // 11  10
	//int b = ++a;//前置++ ,先++ ,再使用
	//printf("a = %d b = %d\n", a, b);  // 11  11
	//int b = a--;//后置-- ,先使用,再--
	//printf("a = %d b = %d\n", a, b);  // 9  10
	int b = --a;//前置-- ,先-- ,再使用
	printf("a = %d b = %d\n", a, b);  // 9  9

	return 0;
}
//(类型)  强制性类型转换 
int main()
{
	int a = (int)3.14;  // 将3.14的double类型 -->  转换为int类型

	return 0;
}