由浅到深认识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语言的类型及语句

相关推荐
reasonsummer7 分钟前
【教学类-160-13】20260422 AI视频培训-练习013“豆包AI视频《师幼互动》+豆包图片风格:CG动画”
开发语言·python
曹牧20 分钟前
Java:处理 HTTP 请求的 Content-Type
java·开发语言
java_logo32 分钟前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
itzixiao34 分钟前
L1-066 猫是液体(5分)[java][python]
java·开发语言·python·算法
Lightning-py40 分钟前
Python 配置日志(Logging)
开发语言·python
d111111111d1 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
隔窗听雨眠1 小时前
MySQL主从延迟根因诊断法
开发语言·php
Hui_AI7201 小时前
基于RAG的农产品GEO溯源智能问答系统实现
开发语言·网络·人工智能·python·算法·创业创新
CDwenhuohuo1 小时前
前端文件预览
开发语言·前端·javascript
愚昧之山绝望之谷开悟之坡1 小时前
什么agentskill.io大白话说清楚
笔记