当前位置: 首页 > ds >正文

C语言(1)—C语言常见概念

文章目录

  • 一、C语言概述
    • 1. 什么是C语言?
    • 2. C语言的历史与地位
  • 二、开发环境搭建
    • 1. 编译器选择
    • 2. 项目结构
  • 三、基础语法详解
    • 1. 第一个C程序
    • 2. 数据类型与变量
    • 3. 运算符与表达式
  • 四、核心概念深入
    • 1. 字符与ASCII编码
    • 2. 字符串与'\0'
  • 五、编程规范与调试
    • 1. 注释规范
    • 2. 常见错误排查
  • 六、实战案例:成绩评级系统

一、C语言概述

1. 什么是C语言?

C语言是一种通用的、过程式的计算机编程语言,广泛应用于系统软件开发(如操作系统、编译器)和嵌入式系统开发。作为人与计算机交流的媒介,它与自然语言(如汉语、英语)类似,但具有严格的语法规则。

特点:高效性:直接操作内存,执行效率高可移植性:代码可在多种平台上编译运行结构化:支持函数和模块化设计

2. C语言的历史与地位

1969年:Ken Thompson开发Unix系统时发明B语言1972年:Dennis Ritchie在B语言基础上设计C语言1989年:ANSI C标准(C89)发布,标志着语言标准化现状:长期占据TIOBE编程语言排行榜前3名

二、开发环境搭建

1. 编译器选择

在这里插入图片描述

2. 项目结构

源文件(.c):存放函数实现

头文件(.h):存放函数声明和宏定义

编译流程:

graph LRA[test.c] --> B[编译器]B --> C[test.obj]C --> D[链接器]D --> E[test.exe]

三、基础语法详解

1. 第一个C程序

#include <stdio.h>
int main() {printf("Hello, C!\n");return 0;
}
#include:预处理指令,引入标准输入输出库main():程序唯一入口,返回int类型printf():格式化输出函数

2. 数据类型与变量

在这里插入图片描述
变量命名规则
由字母、数字、下划线组成

不能以数字开头区分大小写

3. 运算符与表达式

在这里插入图片描述

四、核心概念深入

1. 字符与ASCII编码

ASCII表:每个字符对应一个数字(如A=65,a=97)转义字符:改变字符原有含义
printf("Line1\nLine2");  // \n表示换行
printf("Path: C:\\test"); // \\表示反斜杠

2. 字符串与’\0’

存储方式:以\0(ASCII 0)结尾的字符数组

char str1[] = {'a','b','c','\0'}; // 正确
char str2[] = {'a','b','c'};      // 错误,缺少结束符
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4a876b0ff27643298c3a041714d35076.png)

五、编程规范与调试

1. 注释规范

单行注释:// 注释内容多行注释:/* 注释内容 */注意事项:避免注释嵌套关键算法需详细注释修改代码时同步更新注释

2. 常见错误排查

在这里插入图片描述

六、实战案例:成绩评级系统

#include <stdio.h>
int main() {int score;printf("输入成绩: ");scanf("%d", &score);if (score >= 90) printf("A\n");else if (score >= 80) printf("B\n");else if (score >= 60) printf("C\n");else printf("D\n");return 0;
}
http://www.xdnf.cn/news/1469.html

相关文章:

  • xcode 16 遇到contains bitcode
  • visio导出的图片过大导致latex格式转成pdf之后很不清楚
  • 缩放点积注意力
  • 新书速览|Hadoop与Spark大数据全景解析(视频教学版)
  • STM32F4 W25Q64存储芯片详解:特性以及应用
  • Java 集合:泛型、Set 集合及其实现类详解
  • 房屋租赁管理系统
  • 具身智能操作知识梳理与拓展
  • 第六章 QT基础:4、QT的TCP网络编程
  • FEKO电磁仿真软件许可类型
  • 【特殊场景应对6】频繁跳槽:行业特性与稳定性危机的解释边界
  • Rust 语言使用场景分析
  • 多源数据集成技术分析与应用实践探索
  • 【Element Plus】解决移动设备使用 el-menu 和 el-sub-menu 时,子菜单需要点击两次才会隐藏的问题
  • 记录一下线性回归的学习
  • 极狐GitLab 如何撤销变更?
  • 数据结构线性表的顺序存储结构
  • c语言之杂识
  • 璞华ChatBI闪耀2025数博会:对话式数据分析引领数智化转型新范式
  • BM1684X+FPGA+GMSL视觉解决方案:驱动工业智能化升级的核心引擎
  • 卷积神经网络常用结构
  • 第一章:基于Docker环境快速搭建LangChain框架的智能对话系统:从langchain环境搭建到多轮对话代码实现(大语言模型加载)
  • 读书笔记:淘宝十年产品与技术演进史
  • 第一篇:Django简介
  • java将pdf转换成word
  • 中兴云电脑W102D_晶晨S905X2_2+16G_mt7661无线_安卓9.0_线刷固件包
  • 学习设计模式《五》——工厂方法模式
  • JavaScript-防抖和节流
  • 工业相机中CCM使能参数-色彩校正矩阵
  • 【SpringCloud】Gateway