- 安装环境
- 01.第一个程序
- 02.变量定义
- 03.变量赋值与初始化
- 04.变量输入
- 05.变量与常量
- 06.浮点数
- 07.表达式
- 08.运算符优先级
- 09.判断语句if
- 10.分支语句if-else
- 11.分支语句switch-case
- 12.循环for
- 13.循环while和do-while
- 14.循环应用:求n项的和
- 15.数据类型-整数类型
- 16.数据类型-浮点类型
- 17.数据类型-字符类型
- 18.数据类型-类型转换
- 19.运算符-算术运算符
- 20.运算符-关系运算符
- 21.运算符-逻辑运算符
- 22.运算符-位运算符
- 23.函数的定义与使用
- 24.函数的参数和变量
- 25.认识数组和数组的使用
- 26.指针-取地址运算
- 27.指针-指针与数组
- 28.指针-指针的运算
- 29.字符串-字符串变量
- 30.字符串-字符串函数参数
- 31.字符串-字符串长度strlen
- 32.字符串-字符串比较strcmp
- 33.字符串-字符串拷贝strcpy
- 34.结构-结构类型
- 35.结构-结构体中的结构体
- 36.联合:联合体类型
- 37.全局变量-全局变量
- 38.全局变量-静态本地变量
- 39.编译预处理和宏
- 40.格式化输入输出
- 41.文件输入输出
安装环境
01.第一个程序
#include <stdio.h> // stdio.h是一个头文件(标准输入输出头文件),没有的话会编译错误,#include是一个预处理命令,用来引入头文件int main() //入口函数,所有C语言程序都需要包含main()函数。代码从main()函数开始执行{printf("Hello world \n"); // printf()用于格式化输出到屏幕。printf()函数在stdio.h头文件中声明了printf("Hello world \n");printf("Hello world \n");return 0; // 表示退出程序}
02.变量定义
//int 变量类型//age 变量的名字//向内存申请一块内存来存放我们的内容int age = 20;
03.变量赋值与初始化
int main()//入口函数{//int 变量类型//age 变量的名字//向内存申请一块内存来存放我们的内容//= 赋值运算符 ==等于int age = 20;}
04.变量输入
int main()//入口函数{//int 变量类型//age 变量的名字//向内存申请一块内存来存放我们的内容//= 赋值运算符 ==等于int age = 20;printf("请输入你的年龄... \n");//在控制台打印输出scanf_s("%d",&age);//在控制台输入printf("当前age的值:%d \n",age);//在控制台打印输出}
05.变量与常量
常量:初始化之后就不可以在改变
int main()//入口函数{//常量的定义const int maxCount = 60;//变量的定义int age = 10;age = 100;}
06.浮点数
浮点数:float,double
4/2=2
4/3=1.3333333
4/5=0.8
int main()//入口函数{//int result1 = 4 / 2;double b = 5;double a = 3;double result2 = 4 / a;double result3 = 4 / b;//(double)result=(int)4 / (double)5;printf("%d \n", result1);printf("%f \n", result2);printf("%f \n", result3);}
07.表达式
表达式:由运算符和操作数(常量或者变量也可以),必须有一个返回值。
08.运算符优先级
int main() //入口函数{int result = (2 + 5) * 4;printf("%d \n", result);}
09.判断语句if
=:一个”=”代表的是赋值
:两个””代表的是两边的值是否相等
int main()//入口函数{int a = 6;if (a == 2 + 4)//判断条件 恒成立{printf("判断为真 \n");}printf("00000 \n");}
10.分支语句if-else
int main()//入口函数{int a = 5;if (a == 2 + 4)//判断条件 恒成立{printf("判断为真 \n");}else if (a == 5){printf("我是第二个IF \n");}else{printf("判断为假 \n");}printf("00000 \n");}
11.分支语句switch-case
int main()//入口函数{int num = 2;switch (num){case 1:printf("春天到了 \n");break;//结束循环case 2:printf("夏天到了 \n");break;case 3:printf("秋天到了 \n");break;case 4:printf("冬天到了 \n");break;default:printf("default \n");break;}if (num == 1){printf("春天到了 \n");}else if (num == 2){printf("夏天到了 \n");}else if (num == 3){printf("秋天到了 \n");}else if (num == 4){printf("冬天到了 \n");}else {printf("default \n");}}
12.循环for
//i++ 自身加1 每次循环会做的一个动作for (int i = 0; i < 10;i++) {if (i == 3){//continue;//结束本次循环break;//结束本层循环 也就是跳出循环}printf("i的值: %d \n", i);}
13.循环while和do-while
int j = 0;while (j<10){j++;printf("j %d \n",j);}do{j++;printf("j %d \n", j);} while (j < 10);
14.循环应用:求n项的和
int main()//入口函数{//计算1-10之间的和//1+2 + 3+4+5+6+7+8+9+10int result = 0;for (int i = 0; i < 11;i++) {result = i + result;}printf("result= %d", result);}
15.数据类型-整数类型
int main()//入口函数{//整数类型 char short int longint a = 255;printf("a : %d \n",a);printf("char %d \n", sizeof(char));printf("short %d \n", sizeof(short));printf("int %d \n", sizeof(int));printf("long %d \n", sizeof(long));}
16.数据类型-浮点类型
float double
int main()//入口函数{//float doubledouble a = (int)1 / (double)3;printf("a= %f \n",a);printf("float %d\n", sizeof(float));printf("double %d\n", sizeof(double));}
17.数据类型-字符类型
int main()//入口函数{char a = 1;char b = 'a';if (a == b){printf("他们相等 \n");}else{printf("他们不相等\n");}printf("a= %d \n", a);printf("b= %d \n", b);}
18.数据类型-类型转换
int main()//入口函数{//char - short - int -float -double//自动转换:默认从小的类型向大的类型转换short a = 5;short b = 7;int c = a + b;//强制转换:从大类型转换成小类型double b = 5.0;double e = 8.0;int f = (int)b / e;}
19.运算符-算术运算符
//+ - * / ++ — %
//+ - * / ++ -- %int a = 3;int b = 5;int c = b%a;a++;b--;printf("c %d \n",c);printf("a %d \n", a);printf("b %d \n", b);
20.运算符-关系运算符
int main()//入口函数{//== != < > <= >=if (1 != 1) {printf("相等");}else{printf("不相等");}}
21.运算符-逻辑运算符
逻辑与:&& 有一个为假就是假
逻辑或:|| 有一个为真就是真
逻辑非:! 取反
int main()//入口函数{if (!(5>2 || 5<2)){printf("返回真 \n");}else{printf("返回假 \n");}}
22.运算符-位运算符
位运算:&,|,^,~,<<,>>
int main()//入口函数{int a = 2;int b = 3;//按位与&//10//11//10int c = a & b;//按位或 |//10//11//11int d = a | b;//按位异或 ^//10//11//01int e = a ^ b;printf("按位异或的结果e =%d \n",e);}
23.函数的定义与使用
函数:一块代码,可以传入零个或多个参数,执行我们需要的操作,之后返回零个或一个返回值。
int aa(){int a = 2;int b = 3;//按位与&//10//11//10int c = a & b;return c;}int main()//入口函数{int result = aa();printf("%d \n", result);}
24.函数的参数和变量
int aa(int a,int b){//按位与&//10//11//10int c = a & b;//c就是局部变量return c;}int main()//入口函数{int result = aa(5,6);//result就是局部变量//101//110//100printf("%d \n", result);}
25.认识数组和数组的使用
数组:是用来存放多个相同类型的一个集合,并且固定大小。
//int arr[5];int arr[5] = {1,2,3,4,5};int a = arr[0];for (int i = 0; i < 5; i++){printf("%d \n", arr[i]);}
26.指针-取地址运算
1.内存地址:就是以字节为单位,给内存作的一个编号
2.指针:它的本质就是内存地址,就是一个个编号。
3.指针变量:
①我们定义的一个变量,在作编译的时候,系统会为它自动分配一个内存地址,②然后我们还想定义一个变量去保存这个地址,那么我们就可以叫这个保存地址的变量叫它指针变量。
4.取地址符号:&
int main()//入口函数{int i = 3;int* p;p = &i;printf("p:%x",p);}
27.指针-指针与数组
数组的名字实际上就是第一个元素的内存地址
28.指针-指针的运算
1.i与i
i++:它是先用i的值然后在++
i:先在用i的值
2.*p=p这个地址的内容
29.字符串-字符串变量
以0结尾的字符数组才是字符串。
int main()//入口函数{char str[] = {'H','e','l','l','o','0'};char strA[] = "Hello";const char *pStr = "Hello";//只读//strA[0] = 'W';//pStr[0] = 'W';printf("%s", strA);}
30.字符串-字符串函数参数
void testStr(char * pStr){printf("%s \n", pStr);}int main()//入口函数{char strA[] = "Hello";testStr(strA);printf("%s \n", strA);}
31.字符串-字符串长度strlen
strlen:测量字符串的长度
sizeof:测量的是在内存中实际所占的大小
int main()//入口函数{char strA[] = "Hello";int lenth = strlen(strA);int size = sizeof(strA);printf("%d \n", lenth);printf("%d \n", size);}
32.字符串-字符串比较strcmp
int main()//入口函数{char strA[] = "Hello";char strB[] = "World";int result = strcmp(strA, strB);printf("%d \n", result);}
33.字符串-字符串拷贝strcpy
int main()//入口函数{char strA[] = "Hello";char strB[10];strcpy_s(strB, strA);//第一个参数是目标,第二个参数 源printf("%s \n", strB);}
34.结构-结构类型
struct Person {int age;int sex;char* pName;}person;int main()//入口函数{//Person person;person.age = 20;person.pName = "www.yxfzedu.com";person.sex = 1;int mySex = person.sex;printf("mySex :%d \n", mySex);}
35.结构-结构体中的结构体
struct Person {int age;int sex;char* pName;}person;struct Student{int id;Person per;};int main()//入口函数{Student stu;stu.per.age = 100;printf("stu.per.age :%d \n", stu.per.age);}
36.联合:联合体类型
特点:共用一块内存。
union MyUnion{int a;long b;};int main()//入口函数{MyUnion uni;uni.a = 10;printf("uni.b :%d \n", uni.b);}
37.全局变量-全局变量
int a = 10;//全局变量void test();int main()//入口函数{printf("main函数 a: %d \n", a);test();}void test() {printf("test函数 a: %d \n",a);}
38.全局变量-静态本地变量
static
void test() {static int a = 10;a= a + 2;printf("a :%d \n",a);}int main()//入口函数{test();test();test();}
