由浅到深认识C语言(1):C语言概论

该文章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.hstd表示标准、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.例二:函数的调用

  1. 定义两个变量data1 data2 获取键盘输入;

  2. 定义一个函数去计算上面两个变量data1,data2的和,在函数的内部计算(怎么将数据传递到函数内部呢?)需要用形参将data1,data2传递到函数内部

  3. 得到函数内部的计算结果(怎么得到呢?)通过函数的返回值得到函数的计算结果

    示例如下:

    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;
    }

下一章:由浅到深认识C语言(2):C语言的类型及语句

相关推荐
Yhame.43 分钟前
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
java·开发语言
明明真系叻1 小时前
第二十六周机器学习笔记:PINN求正反解求PDE文献阅读——正问题
人工智能·笔记·深度学习·机器学习·1024程序员节
mazo_command3 小时前
【MATLAB课设五子棋教程】(附源码)
开发语言·matlab
IT猿手3 小时前
多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
开发语言·人工智能·算法·机器学习·matlab
青春男大3 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
88号技师3 小时前
几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
Zer0_on3 小时前
数据结构栈和队列
c语言·开发语言·数据结构
一只小bit3 小时前
数据结构之栈,队列,树
c语言·开发语言·数据结构·c++
马浩同学3 小时前
【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
c语言·单片机·嵌入式硬件·mcu
一个没有本领的人4 小时前
win11+matlab2021a配置C-COT
c语言·开发语言·matlab·目标跟踪