转义字符
转义字符 | 释义 |
---|---|
? | 在书写连续的多个问号时,防止他们被解析为三字母词 |
\' | 用于表达字符常量 ' |
\" | 用于表示一个字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止他被解释为一个个转义序列符 |
\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;
}