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

第一讲:C语言的常见概念

一、初识C语言

1.C语言是什么

C语言是一种计算机语言,有它自己的语法规则。

2.C语言的历史

1969年,贝尔实验室的肯·汤普森与丹尼斯·里奇开发了Unix操作系统。Unix是用汇编写的,为了可移植性,汤普森在BCPL语言的基础上发明了B语言。
1972年,丹尼斯·里奇和布莱恩·柯林汉在B语言的基础上设计出了C语言
1973年,整个Unix系统使用C语言重新,C语言开始快速流传,并应用于各种操作系统和软件的开发。
1988年,美国国家标准协会(ANSI)正式将C语言标准化,标志着C语言开始稳定和规范化。
一直到今天C语言还是在广泛的使用,在计算机语言的排行榜霸占前三名。

3.编译和链接

C语言是一门编译型计算机语言,其通过编译器翻译和链接器的链接生成二进制的可执行文件,可执行文件才能执行。
C语言的运行是通过编译链接2个过程,其代码放在.c为后缀的文件中的。

一个工程一般都会有多个源文件组成。流程一般为:

  1. 每个源文件.c文件 → 编译器 → 目标文件.obj文件
  2. 多个目标文件和库文件(链接库) → 链接器 → 可执行程序.exe文件

4.编译器的对比

C语言是一门编译型的计算机语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令。
常见的C语言编译器有哪些呢?
比如:msvc、clang、gcc就是一些常见的编译器,也有一些**集成开发环境(IDE)**如:VS2026、XCode、CodeBlocks、DevC++、Clion等。

集成开发环境(IDE)用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码的编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。

  • VS2026集成了MSVC(安装包较大,傻瓜式安装,无需多余配置,使用方便)
  • XCode集成了clang(苹果电脑上的开发工具)
  • CodeBlocks集成了gcc(比较小众,需配置环境,不推荐)
  • DevC++集成了gcc(小巧,过于简单,对代码风格养成不好,竞赛使用较多)
  • Clion默认使用CMake,编译器可配置(收费,暂时不推荐)

VS2026安装可参考:VS2026安装教程

5.第一个C语言程序

#include<stdio.h>intmain(){printf("hello C\n");return0;}

5.1 main函数

main函数是程序的主入口,在一个项目中有且仅可有一个,即使有多个.c源文件,也只能有一个main函数。
C语言默认返回0表示正常,返回非0表示异常返回。

6.printf()

6.1 printf() 是一个库函数

printf()的功能是:
在标准输出设备(一般指屏幕)上进行信息的打印(打印格式化内容信息)。
使用printf()函数需要包含头文件<stdio.h>

6.2 占位符

%d - 以十进制形式打印有符号整数(demical十进制)
%c - 打印字符(character)
%f - 打印单精度浮点数(float)
%lf- 打印双精度浮点数(double)

本节只学习几个基本的占位符,后续会学习更多相关的占位符。

6.3 库函数

为了不在重复实现常见的代码,提升开发效率,C语言标准规定了一些函数,这些函数在不同编译器厂家根据标准实现,提供给程序员使用。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数
一个系列的库函数一般会声明在同一个头文件中,使用时需包含对应的头文件。库函数链接:库函数链接

6.4 关键字

C语言中有一批保留的名字的字符,这些符号被称为保留字或者关键字。

注意:

1.关键字有特殊的意义,保留给C语言使用的。
2.关键字不能自己创建。

C语言关键字全部介绍:关键字介绍

7.char 字符

键盘上可以敲出的各种字符,使用单引号''括起来的。
比如在屏幕上显示ASNI值为31~127之间的字符(前31个字符是无法在屏幕中显示出来的),程序如下:

#include<stdio.h>intmain(){for(inti=32;i<=127;i++){printf("%c ",i);}}

7.1 ASNII 编码

每个字符编一个二进制序列,叫做编码。
为了互相通信不造成混乱,美国国家标准协会(ASNI)出台了一个标准的ASCII标准。
参考:ASCII标准

7.2 掌握的知识点

1.字符A-Z的ASCII码值从65-90
2.字符a -z的ASCII码值从97-112
3.对应的大写字母+32= 小写字母的ASCII码值;
4.数字0-9对用的ASCII码值为48-57
5.换行符\n的ASCII码值为10
6.ASCII码值从0-31这32个字符是不可打印字符,无法打印在屏幕上观察。

7.3 字符串

使用双引号""括起来的一串字符串被称为字符串,如"abcdef"。

字符串的占位符为:%s;
字符串末尾隐藏默认放着一个 \0 字符;
\0 字符是字符串的结束标志;
\0的ASCII码值为0

// 字符串的两种打印方式intmain(){printf("%s\n","hello C");printf("hello C");return0;}

需要注意的下面两种情况的输出方式的区别:
字符数组后不加 \0 的情况,则输出时没有结束标志,则后续输出是未知的。

intmain(){chararr1[]="abc";chararr2[]={'a','b','c'};printf("%s\n",arr1);printf("%s\n",arr2);return0;}

8.转义字符

前面已近学习了几个转义字符,本节我们学习更多的转义字符。

intmain(){// 1.\? 书写连续多个问号,防止被解析为三字母词,现在新编译器已经无法验证了。printf("(are you ok??)");// 早起编译器可能输出 (are you ok]printf("(are you ok\?\?)")// 2.\' 表示字符常量 'printf("%c",'\'');// 3.\" 表示字符常量 "printf("%c","abc\"xyz\"def");// 4.\\ 表示字符常量 \printf("%c","c:\\test\\16\\data.text");// c:\test\16\data.text// 5. \a 表示警报,终端发出的警报声或出现闪烁,或两种同时发生printf("%a\n");// 6. \b 退格键,光标回退一个字符,但不删除可能会被覆盖printf("abc\bdef");// abcefprintf("abc\b\bdef");// acef// 7. \n 换行符// 8. \r 回车符,光标移到同一行的开头printf("abcdef\r");// 9. \t - 制表符,光标移到下一个水平制表符,通常是下一个4/8的倍数printf("a\tbc\tdef\tghiq\tnnnnn\tw\n");// 特殊的两种转义字符// 10.\ddd - d d d表示 1~3 位八进制的数字,如\130,十进制为88,表示字符'X'printf("%c\n",'\130');// X// 11.\xdd - d d 表示 1~2 位十六进制的数字,如\x30,十进制为48,表示字符'0'printf("%c\n",'\x30');// 0return0;}

注意:

1.数字0开头表示八进制数字,比如071表示十进制的数字57
2.字符x开头表示十六进制数字,比如0x30表示十进制的数字48

9 语句

后续章节再详细介绍,本节不做介绍!

有写的不好的地方请大家积极指正出来,谢谢!


【自勉】表格终会翻篇,技术方能立身,坚持下去,必有回响。

http://www.jsqmd.com/news/987738/

相关文章:

  • Web分布式网站架构之-Squid缓存【20260608】004篇-【传统代理】
  • 鸿蒙原生应用实战(二):首页开发与全局数据流设计
  • 【Uniapp 插件 una-banner 】轮播图 / banner / swiper
  • 在Python中,不可变(immutable)数据类型是指一旦创建后,其内容不能被修改的数据类型
  • 2026 香奈儿名牌包包回收规则,无锡门店回收对哪些款式更热忠 - 奢侈品回收评测
  • 分公司越来越多,网络越用越卡?教你用“智能网关”把企业专线成本砍掉50%
  • 宁波精装房石材改造指南:不砸不拆怎么提升质感(2026版) - 宁波融诚石业
  • YOLOv5 实战:不修改 `detect.py`,让检测结果图中的置信度随机显示为自己想要的
  • 零基础玩转大数据!800万条浏览器行为数据ETL实战,从零搞定可视化大屏底层数据
  • 2026年 膜分离设备厂家推荐:辽宁膜分离工艺与管式膜分离系统,青花椒油分离/食品级膜分离/医药膜分离技术优选指南 - 品牌发掘
  • 2026上海百达翡丽回收价格怎么算?全套、单表、成色差价明细解析 - 奢侈品回收评测
  • 多 Agent 协作的“终极难题”:如何解决冲突、分歧与无限循环?
  • 素材去水印实用技巧:按场景选择工具,兼顾效率与画质
  • Web分布式网站架构之-Squid缓存【20260608】005篇-【传统代理】
  • 知识图谱 Graph Rag 方法横向对比
  • 伺服电机仿真(3):PMSM在三相静止坐标系下的数学模型
  • 系统规划与管理师选老师:案例不好的人,需要什么样的老师?
  • 清理重复文件释放C盘空间的工具
  • 新装修的石材为什么开裂?5大原因+预防措施(2026版) - 宁波融诚石业
  • 2026窑炉气体分析系统选购指南:全国优质厂家排名与实战经验分享 - 品研笔录
  • 【UE5】雷达覆盖区域效果
  • 2026年 黑龙江铝塑铝门窗/哈尔滨保暖铝塑铝门窗推荐榜:高密封、抗老化、高性价比家装与老旧小区改造优选 - 品牌发掘
  • 闲置多年奢侈品腕表,2026无锡手表回收如何养护价值更高 - 奢侈品回收评测
  • Python之encrypti0n包语法、参数和实际应用案例
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解001篇
  • SQL/NoSQL数据库为何成为TVA的记忆系统(7)
  • 如何利用 OpenCV 将图像显示在对话框窗口上
  • 2026年苏州定制家具厂家推荐榜:酒店餐饮、适老化、医养机构与养老院圆角防撞星级配套家具精选 - 品牌发掘
  • 网络请求基础:使用http模块发起GET/POST请求(12)
  • 深圳卡地亚回收避坑要点|先查资质、再看报价、最后结算 - 奢侈品回收测评