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

初识C语言

本文将介绍C语言及其基本概念


一:C语言是什么

总的来说,C语言是一种结构化的程序设计语言。人与人之间用语言交流,比如:汉语 英语 日语等等,而如同人与人交流需要语言那般,人与计算机交流需要计算机语言,C语言就是计算机语言的一种。


二:初步认识C语言

下面先写一串代码,再逐步介绍

#include <stdio.h> int main() { printf("hello"); return 0; }

1 · main函数

C语言程序是从main函数开始执行的,可以说main函数就是程序的入口,main函数也被称为 主函数。我们注意到 main函数前面有个 int 这说明main函数需要一个整型类型的返回值,所以我们在main函数的最后加上了 return 0。

需要注意的是:

main函数有且仅有⼀个
即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)
我们在第一次写代码的时候 会犯一些常见的错误:
代码中不能使⽤中⽂符号,⽐如括号和分号
⼀条语句结束后,有分号

2 · printf和库函数

在我们上面的代码中,有一行是

printf("hello");

代码中使用了printf库函数,实现了在屏幕上打印信息,效果如下

简单的介绍⼀下printfprintf是⼀个库函数,它的功能是在标准输出设备(⼀般指屏幕)上进⾏信息的打印。上⾯的代码是使⽤ printf函数打印字符串。只要把想要打印的⼀串字符放在双引号中并传递给printf函数就可以打印。
当然 其他类型的数据printf也是可以打印的 需要用到占位符
#include <stdio.h> int main() { printf("%d\n",3); //打印整型 printf("%c\n",'c'); //打印字符 printf("%lf\n",3.14); //打印双精度浮点型 return 0; }

上面的%d,%c等是占位符,会被后边的值替换。

同时我们在使⽤库函数的时候,是需要包含头⽂件的,⽐如:printf函数需要包含的就是
stdio.h这个头⽂件,具体的⽅法就是:
#include <stdio.h>

这个时候我们可能会好奇了:什么是库函数呢

简单来说:

为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数由不同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了一个库 被称为标准库,这些函数也被称为库函数。
⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。

3 · 关键字

C语⾔中有⼀批保留的名字的符号,⽐如:intifreturn,这些符号被称为保留字或者关键
字。
关键字都有特殊的意义,是保留给C语⾔使⽤的
程序员⾃⼰在创建标识符的时候是不能和关键字重复的
关键字也是不能⾃⼰创建的。
C语⾔的32个关键字如下:
autobreakcasecharconstcontinuedefaultdodoubleelseenum extern
floatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedef unionunsignedvoidvolatilewhile

4 · 字符与ASCII码

在键盘上可以敲出各种字符,如:a,q,@等,这些符号都被称为字符,C语⾔中字符是⽤单引号括起来的,如:'a','b','@'。

我们知道计算机所有数据都是以二进制形式存储的,那么这些字符又是怎样存储进去的呢

答:给字符编一个二进制序列 叫做编码。

为了方便,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C

语⾔中的字符就遵循了 ASCII 编码的⽅式。
ASCII Chart - cppreference.com
上面的链接是ASCII码表

我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数据:

字符A~Z的ASCII码值从65~90
字符a~z的ASCII码值从97~122
对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
数字字符0~9的ASCII码值从48~57
换⾏\n的ASCII值是:10
在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

5 · 字符串与\0

使⽤双引号括起来的⼀串字符就被称为字符串,如:"abcdef",就是⼀个字符串。
字符串的打印格式可以使⽤%s来指定,也可以直接打印
#include <stdio.h> int main() { printf("%s","hello"); printf("hello"); return 0; }
C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个\0字符,这个\0字符是字符串的结束标志。
对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏⼀个\0
转义字符,\0是字符串的结束标志。
所以我们在使⽤库函数printf()打印字符串或者strlen() 计算字符串⻓度的时候,遇到\0的时候就⾃动停止了。
下面展示\0的重要性
这里用调试 可以看到字符串的末尾是有隐藏的\0的 下面我们运行这个代码
可以看到,我们在打印arr1时正常打印出了abc,而在打印arr2时,除了打印出abc,还打印出了一些随机值,这是因为打印arr2时,abc后面没有\0,没有正常停止。

6 · 转义字符

在上面的代码中,你可能很奇怪:\n 还有 \0 都是什么,这就是转义字符,简单来说就是转变了原本意思的字符,转义字符不止这俩个,也都有不同的功能。

例如:

\?:在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
\':⽤于表⽰字符常量'
\":⽤于表⽰⼀个字符串内部的双引号
\\:⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
\a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
\b:退格键,光标回退⼀个字符,但不删除字符。
\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于\v
\n:换⾏符。
\r:回⻋符,光标移到同⼀⾏的开头。
\t:制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。
\v:垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
\ddd:d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
\xdd:d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0:null 字符,代表没有内容,\0就是\ddd这类转义字符的⼀种,⽤于字符串的结束标志,其
ASCII码值是0

7 · 语句及语句分类

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
1:空语句
2:表达式语句
3:函数调⽤语句
4:复合语句
5:控制语句
空语句

一个分号就是一条空语句。空语句一般出现的地方是:这个地方需要一条语句,这个语句什么事也不用做。

表达式语句

#include <stdio.h> int main() { int x = 1; int y = 2; x = y + 3;//表达式语句 return 0; }

表达式语句就是在表达式后面加上分号。

函数调用语句

#include <stdio.h> int Add(int x, int y) { return x + y; } int main() { int a = 1; int b = 2; int sum = 0; sum = Add(a, b); printf("%d\n", sum); return 0; }

在函数调用后加上分号,就是函数调用语句。

复合语句

#include <stdio.h> int main() { int i = 0; int sum = 0; for (i = 0; i < 10; i++) //for循环的循环体的⼤括号中的就是复合语句 { sum += i; } printf("%d\n", sum); return 0; }
复合语句其实就是前⾯讲过的代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。
控制语句
控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。
可分成以下三类:
1.条件判断语句也叫分⽀语句:if语句、switch语句;
2.循环执⾏语句:do while语句、while语句、for语句;
3.转向语句:break语句、goto语句、continue语句、return语句。

8 · 注释

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
注释是给程序员⾃⼰,或者其他程序员看的。
好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。
C语言的注释有两种方法
第⼀种⽅法是将注释放在/*...*/之间,内部可以分⾏。
/* 注释 */ /* ⼀⾏注释 */
/**/的这个注释也不⽀持嵌套注释,/*开始注释后,遇到第⼀个*/就认为注释结束了。
第⼆种写法是将注释放在双斜杠//后⾯,从双斜杠到⾏尾都属于注释。这种注释只能是单⾏,可以
放在⾏⾸,也可以放在⼀⾏语句的结尾。
不管是哪⼀种注释,都不能放在双引号⾥⾯。
双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。
编译时 注释会被替换为一个空格
所以 ab/*这⾥是注释*/cd 会变成 ab cd 而不是 abcd。

总结

以上简单介绍了C语言及其基本概念,关于C语言的其余内容,请期待后续更新


以上内容如有错误或不准确之处,欢迎指出,或者你有更好的想法,也欢迎交流

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

相关文章:

  • 2026年推荐一下性价比高的AI搜索优化公司靠谱吗 - 工业设备
  • 2026盐城环保机械哪家口碑好,百利豪机械创新能力怎么样产品全吗 - myqiye
  • ##ASM路由配置
  • 解读2026年口碑好的建筑装饰培训机构,贵阳地区推荐哪家 - 工业品牌热点
  • 【2026年最新600套毕设项目分享】springboot基于线性回归的音乐推荐系统(14090)
  • 实测3种携程任我行卡回收方法,安心又省心 - 京回收小程序
  • LangChain 多智能体 (Multi-Agent) 完整文档分析
  • 【水果识别系统】实现~Python+深度学习+人工智能+算法模型+图像识别+2026原创
  • 2026 唯品会购物消费额度安全使用指南:防骗技巧与账户保护 - 容易提小溪
  • 2025年中国独角兽企业全景报告:城市分布、赛道格局与发展趋势
  • 探路者完成收购通途半导体 抢占AI算力黄金赛道
  • 帛书《周易》“羅”象不是《易经》“离”卦
  • 2026年 膜结构停车棚厂家推荐排行榜,充电桩棚/双开停车棚/汽车棚/非机动车棚/景观棚,创新设计与耐用品质全景解析 - 品牌企业推荐师(官方)
  • 智慧校园安全监测 教师人员行为监测 目标检测图像数据集 手机数据集 雨伞识别数据集 人员持刀数据集 持枪图像检测数据集第10071期
  • 2026年地埋BDF水箱企业推荐与评测,直击耐压与定制痛点 - 深度智识库
  • 计算机毕业设计java基于MVC的社区党建信息系统的设计与实现 基于SpringBoot的社区党建数字化管理平台设计与实现基层党务工作信息化管理系统研发
  • 【2026年最新600套毕设项目分享】springboot基于新疆特色文化在线教育平台(14089)
  • 基于Python酒店评论情感分析与可视化系统 【附源码】
  • GD32 ADC外设学习笔记
  • 创新技术+硬核管线:创胜集团价值凸显
  • 【GaussDB】排查ARM64环境上gaussdb的python驱动(psycopg3)coredump的问题
  • 基于Chrome140的Telegram账号自动化——运行脚本(三)
  • 从数据到决策:土壤墒情监测站如何指导科学灌溉
  • 深度解析:基于混合专家(MoE)与互信息解耦的多模态知识图谱推理架构
  • 类和对象(一)
  • Java 如何从PLC 读取数据
  • JavaSE
  • 基于javaweb和mysql的ssm公开课记录管理系统(java+ssm+html+javascript+jsp+mysql)
  • SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
  • C++27 <mdspan>与USTRUCT内存布局冲突?UE6.5.3已静默修复但未文档化!附3行Patch代码+UnrealBuildTool自定义规则注入教程