【C语言】什么是C语言?常见概念知多少

目录

一、头文件和源文件介绍

二、main函数和库函数

三、关键字介绍

四、字符和ASCII编码

五、转义字符

六、语句分类和注释


前言:问渠那得清如许,为有源头活水来。

C语言最初是作为Unix系统的开发工具而发明的。目的是为了编写高效、可移植的系统软件。C语言发明之初是为了取代汇编语言,因为汇编语言很难实现跨平台、可移植性。随着时间的推移,C语言成为了计算机教育的重要组成部分,凭借其简洁、高效、可移植的特点成为了工业界的主流编程语言。

C语言是什么呢?
就像人与人使用语言交流一样,人要想和计算机交流,则需使用计算机语言。
目前已知已经有上千种计算机语言,人们是通过计算机语言写的程序,给计算机下达指令,让计算机工作的。C语言就是众多计算机语言中的一种,当然C++/Java/Go/Python都是计算机语言。

下图是第一个c语言程序

下面进入正题,我将讲述一些C语言的常见概念

一、头文件和源文件介绍

头文件(Header File):

通常包含了一些函数声明、宏定义、类型定义等内容,这些内容被用来在多个源文件中共享和复用。
头文件通常以 .h 或 .hpp 作为文件扩展名。
在C++中,我们常常使用 #include 预处理指令来包含头文件,这样源文件就可以使用头文件中定义的内容了。

源文件(Source File):

是实际包含程序实现(如函数定义、变量声明等)的文件。
源文件通常以 .cpp、.c 或 .cc 等作为文件扩展名。
在编译时,编译器会处理源文件,生成目标文件或可执行文件。

它们的关系:

通常,头文件和源文件是成对出现的。头文件包含了函数的声明和类型定义,而源文件则包含了这些函数的实际定义。
当你在一个源文件中使用某个函数时,你需要包含定义了这个函数的头文件,这样编译器就知道这个函数的签名和如何调用它。然后,在链接阶段,链接器会找到这个函数在源文件中的实际定义,并把它链接到最终的可执行文件中。

这样的设计有助于代码的模块化和复用,使得代码更加清晰、易于维护和管理。

二、main函数和库函数

2.1、main函数:

每个c语言程序不管有多少行代码都是从main函数开始执行的,main函数是程序的入口,main函数也被叫做主函数,main前面的int表示main函数执行结束的时候返回一个整形的值。所以在main函数的最后写return 0;正好前后呼应。

注意:①main函数是程序的入口

           ②main函数有且仅有一个

           ③即使一个项目中有多个.c文件,但只能有一个main函数(因为程序的入口只能有一个)

2.2、库函数:

第一个C语言代码使用的printf函数就是一个库函数,实现了在屏幕上的信息打印。

同时我们在使用库函数的时候,是需要包含头文件的,比如:printf函数需要包含的就是stdio.h这个头文件,即#include <stdio.h>

为了不再重复实现常见的代码,让程序员提升开发效率。C语言标准规定了一组函数,这些函数在由不同的编译器厂商根据标准进行实现,提供给程序员使用,这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上一些编译器厂商可能会额外扩展提供部分函数
(这些函数在其他编译器不一定支持)

一个系列的库函数一般会在声明在同一个头文件中,所以库函数的使用要包含对应的头文件。

库函数数量比较多,可以参考链接中介绍的库函数:https://cplusplus.com/reference/clibrary/

三、关键字介绍

C语言中有一批保留名字的符号,比如:int、for、struct,这些符号被称为保留字或者关键字

注意:①关键字都有特殊的意义,是保留给C语言使用的

           ②程序员在自己创建标识符的时候是不能和关键词重复的

           ③关键词是不能自己创建的

C语言常见的32个关键字如下:

1、auto:用于声明自动变量,这些变量在代码块内定义,并在离开该代码块时自动销毁。
2、break:用于跳出循环或switch语句。
3、case:用于switch语句中,表示一个可能的分支。
4、char:用于声明字符类型变量或函数。
5、const:用于声明常量,其值在程序执行期间不可更改。
6、continue:用于跳过当前循环的剩余部分,并立即开始下一次迭代。
7、default:用于switch语句中,当没有匹配case时执行。
8、do:用于do-while循环结构。
9、double:用于声明双精度浮点类型变量或函数。
10、else:用于if语句中,表示当if条件不满足时执行的代码块。
11、enum:用于声明枚举类型。
12、extern:用于声明在其他地方定义的变量或函数。
13、float:用于声明单精度浮点类型变量或函数。
14、for:用于for循环结构。
15、goto:用于无条件跳转到程序中的指定标签。
16、if:用于条件判断。
17、int:用于声明整型变量或函数。
18、long:用于声明长整型变量或函数。
19、register:建议编译器将变量存储在寄存器中,以提高访问速度。
20、return:用于从函数中返回值。
21、short:用于声明短整型变量或函数。
22、signed:用于声明有符号整数类型。
23、sizeof:用于获取数据类型或对象的大小(以字节为单位)。
24、static:用于声明静态变量或函数,它们的生命周期是整个程序执行期间。
25、struct:用于声明结构体类型。
26、switch:用于多路选择结构。
27、typedef:用于为数据类型定义别名。
28、union:用于声明联合类型。
29、unsigned:用于声明无符号整数类型。
30、void:表示无类型或函数的返回类型为无。
31、volatile:告诉编译器该变量可能会在意想不到的时候改变值。
32、while:用于while循环结构。

需要注意的是,随着C语言标准的演变(如C99、C11等),可能会引入更多的关键词或特性。此外,某些编译器或平台可能还支持非标准的关键词或扩展。因此,在实际编程中,建议查阅最新的C语言标准文档或相关编译器文档以获取最准确的信息。

https://zh.cppreference.com/w/c/keyword(C语言关键字的全部介绍)

四、字符和ASCII编码

在键盘上可以敲出各种字符如a,#,@等,这些符号都称为字符,C语言中字符是用单引号括起来的,如:'a','#','@'。
我们知道在计算机中的所有数据都是以二进制的形式储存的,那这些字符在内存中分别以什么样的二进制储存的呢?如果我们每个人自己给这些字符中的每个字符编一个二进制序列,那这个就叫做编码,为了方便大家相互通信,不造成混乱,后来美国国家标准学会ANSI出台了一个标准ASCII编码,C语言中的字符就遵循着ASCII编码的方法。

下图为十进制编码对应的字符:

 

五、转义字符

转义字符(Escape Character)是一种特殊的字符序列,它以反斜杠(\)开头,后跟一个或几个字符,用于表示不能直接表示的字符或具有特殊含义的字符。在C语言中,转义字符主要用于表示控制字符或特殊字符,例如换行符、制表符、反引号、单引号、双引号等。

以下是一些常见的C语言转义字符及其描述:

\n:换行符,用于在输出中插入一个新行。
\r:回车符,通常与\n结合使用,以在不同的操作系统中实现换行效果。
\t:制表符,用于在输出中插入一个水平制表符(通常相当于8个空格)。
\\:反斜杠字符本身,因为在字符串中直接使用反斜杠是一个特殊字符,所以需要使用\\来表示一个普通的反斜杠。
\':单引号字符,用于在字符串中表示一个单引号。
\":双引号字符,用于在字符串中表示一个双引号。
此外,C语言还支持使用八进制和十六进制数表示任意字符的转义序列:

\ddd:其中ddd是一个或多个八进制数字,表示一个字符。例如,\101表示字符'A'。
\xhh:其中hh是一个或多个十六进制数字,表示一个字符。例如,\x41也表示字符'A'。

六、语句分类和注释

6.1、语句分类:

表达式语句:这类语句包含一个表达式和一个分号。表达式由运算符和运算对象(可以是常量、变量或二者的组合)组成,用于计算并可能产生结果。但在表达式语句中,结果通常会被丢弃。
赋值语句:这类语句用于给变量赋值。除了简单的赋值外,还包括加等于、减等于、乘等于、除等于和取余等于等操作。
控制语句:这类语句用于控制程序的执行流程。控制语句可以分为以下几类:
条件判断语句:如if语句和switch语句。它们根据条件判断的结果来决定执行哪一部分代码。
循环语句:包括for语句、while语句和do-while语句。当循环条件为真时,这些语句会反复执行指定的操作。
转向语句:如break语句、continue语句、goto语句和return语句。它们用于改变程序的正常执行流程,如跳出循环、跳过当前循环的剩余部分、跳转到指定位置或返回函数值。
复合语句:复合语句是由多个语句组成的语句块,通常用花括号{}括起来。
空语句:空语句仅包含一个分号,不执行任何操作。它有时在语法上需要一条完整的语句,但实际上并不需要执行任何操作时使用。
声明语句:用于声明一个或多个变量或函数。这类语句不是用来执行操作的,而是用来定义变量或函数的类型和名称。

6.2、注释:

在C语言中,注释是用于对代码进行说明或解释的文字,它们不会被编译器执行。注释可以帮助程序员和其他阅读代码的人更好地理解代码的功能和逻辑。C语言提供了两种方式来添加注释:

单行注释:
单行注释以//开始,直到该行结束。编译器会忽略//之后的所有内容,直到该行结束
多行注释:
多行注释以/*开始,以*/结束。编译器会忽略/*和*/之间的所有内容,无论它们跨越了多少行


在编写代码时,适当地使用注释是非常重要的,特别是当代码的逻辑较为复杂或需要进行特殊的说明时。良好的注释可以提高代码的可读性和可维护性。然而,也要注意不要过度注释,避免注释与代码内容重复或产生歧义。

结语:C语言基础知识看似简单,但十分重要,是深入理解和学习更复杂程序的基石。如果上述内             容对您有帮助的话,还请点赞收藏✿

           如果发现内容有误,还请给予指正,十分感谢;)

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值