该文章Github地址:https://github.com/AntonyCheng/c-notes
在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!
1.C语言概论
1.1.写C语言的过程
- 编写:程序员写代码的过程,在记事本,vs code,VS studio等等;
- 编译:查看代码语法错误,生成汇编语言;
- 汇编:将生成好的汇编语言生成为二进制语言(目标文件);
- 连接:将生成好的二进制语言 + 用到的库 + 启动代码 生成可执行文件。
1.2.完整的C代码分析
-
先写一个
hello world
:c// 这是注释行 #include<stdio.h> int main(int argc, char* argv[]) { printf("hello world\n"); return 0; }
-
注释:
c"//" 这是行注释; "/**/" 这是块注释,且不能嵌套;
-
头文件标识:
c#include<stdio.h>
stdio.h
:std
表示标准、i
表示输入、o
表示输出、h
表示头文件,连起来就是标准的输入输出文件。 -
输出:
printf
是将""
中的字符串输出出来,这是由头部文件
所决定的,能够进行标准的输出和输入。 -
主函数:
main
是主函数,是一个程序的入口,是一个执行代码的开始,所以主函数有且仅有一个。main
左边的int
表示该函数返回的是一个int
值。main
右边的小括号内是该函数的形式参数,简称"形参"。 -
大括号:
{}
是函数体,函数的功能都在大括号里面实现,每条记着缩进。 -
分号:
;
是C语言的语句结束标记,每一行代码必须得有。 -
总结代码如下:
c//行注释: #include<stdio.h>//std 标准 i输入 o输出(标准的输入输出头文件) /* 块注释 不能嵌套 main 是程序的入口 有且仅有一个 main左边的int 代表的是函数的返回值类型 ()里面函数的形参(函数外部将数据传递到函数内部的桥梁) */ int main(int argc,char *argv[]) {//函数的功能都在{}里面实现 //使用任何东西 必先存在 //printf:将""中的字符串 输出到 终端上 printf("hello iot\n");//来至系统库文件 //;c语言的语句结束标记 //如果你的代码 一闪而过 可以用带阻塞的代码 getchar(); return 0; } //int char return 都是后面要讲的关键字
1.3.例一:求圆的面积
-
分析所求例子过程:
-
如果我们要求一个圆的面积,需要以下条件:
半径
R
,算法S=pi*R*R
; -
半径
R
可以通过提前声明,或者用户输入; -
算法需要定义一个面积变量:
area=pi*R*R
; -
最后将该
area
变量输出出来;
-
-
示例如下:
c#include<stdio.h> #define PI 3.14 //定义一个宏,建议大写,和普通变量区分 int main(int argc, char* argv[]) { float R = 0.0f; float area = 0.0f; printf("请输入一个半径R;"); scanf_s("%f", &R); printf("R = %f\n", R); area = PI * R * R; printf("area = %.2f\n", area); return 0; }
-
代码的解释:
c#include<stdio.h> //定义一个宏 建议大写 和普通变量区分开 #define PI 3.14 int main(int argc,char *argv[]) { float r=0.0f;//定义一个r变量 系统给r开辟4字节空间 float area = 0.0f;//定义一个面积变量 //获得半径 从键盘获得scanf printf("请输入圆的半径r:"); scanf("%f", &r);//带阻塞 //算法:计算面积area = 3.14 * r * r area = PI*r*r; //将面积输出%.2f中的.2表示小数部分保留两位 printf("area = %.2f\n",area); return 0; }
1.4.例二:函数的调用
-
定义两个变量data1 data2 获取键盘输入;
-
定义一个函数去计算上面两个变量data1,data2的和,在函数的内部计算(怎么将数据传递到函数内部呢?)需要用形参将data1,data2传递到函数内部;
-
得到函数内部的计算结果(怎么得到呢?)通过函数的返回值得到函数的计算结果;
示例如下:
c#include<stdio.h> int add_fun(int a, int b) { return a + b; } int main(int argc,char *argv[]) { int data1 = 0, data2 = 0; int ret = 0; printf("请输入两个int变量:"); scanf_s("%d %d", &data1, &data2); ret = add_fun(data1, data2); printf("ret = %d", ret); return 0; }
代码解释:
c#include<stdio.h> int add_fun(int a, int b) { return a + b; } int main(int argc, char* argv[]) { //定义两个变量 获取键盘输入 //int data1 = 0; //int data2 = 0; int data1 = 0, data2 = 0; int ret = 0;//存放函数的结果 printf("请输入两个int变量:"); scanf_s("%d %d", &data1, &data2); //函数的调用 ret = add_fun(data1, data2);//a = data1 b = data2 //输出ret的结果 printf("ret = %d\n", ret); return 0; }