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

C语言常见概念

一、C语言是什么?

人与计算机之间的交流是通过计算机语言,C语言是一种典型的计算机语言。美国国家标准协会(ANSI)制定了一套C语言的使用标准,标志着C语言趋向于规范化与成熟化。

二、编译与链接

①计算机只认识二进制指令(0与1)。

②C语言是一门编译型的计算机语言,C语言的源代码都是文本文件(其源代码存放在.c为后缀的源文件中),不能直接运行。必须通过编译器的编译与链接器的链接生成二进制的可执行程序(.exe程序),该程序才能被运行。
在这里插入图片描述

三、编译器与集成开发环境。

①C语言是一门编译型的计算机语言,计算机语言需要依赖编译器才能生成可执行的机器指令(二进制指令)。
②常见的编译器:msvc(微软公司)、clang(苹果公司)、gcc。使用编译器一般需要通过敲命令行的方式,不太方便,为了解决这一不便,就诞生了集成开发环境。
③集成开发环境:(IDE),⼀般包括代码编辑器、 编译器 、 调试器和 图形用户界面等工具。 集成了代码编写功能、分析功能、编译功能、调试功能等⼀体化的开发软件服务套件。
④常见的集成开发环境:VS2022(集成了MCVC)、XCode(集成了clang,常在苹果电脑上使用)、CodeBlocks(集成了gcc)、DevC++(集成了gcc)
⑤VS2022的优缺点:
在这里插入图片描述

四、项目(工程)、源文件、头文件

在VS上写代码时,我们通常将代码放在一个项目(工程)中进行管理。项目的名称需要起一个有意义的名字,尽量不要使用中文、空格、特殊字符。
在这里插入图片描述
②源文件与头文件
.c为后缀的是c语言的源文件
.cpp为后缀的是c++语言的源文件
.h为后缀的是头文件

五、main函数(主函数)

①main函数的介绍

每个 C 语言程序不管有多少行代码,都是从 main 函数开始执行的,main 函数是程序的入口。需要特别注意的是,在一个项目(工程)中,不管有多少个源文件,main函数有且仅有一个(因为程序的入口只能有一个)

int main()
{
	return 0;
}

注:返回值int表示当main执行结束时,会返回整数0

②main函数的多种写法(推荐使用b与d这两种写法)

a.无返回值且无形式参数的写法(这种写法很古老,在有的编译器上会报错,不推荐)

void main()
{

}

b.有返回值且无形式参数的写法(推荐)

//int main()
//{
//	return 0;
//}

//等价于下面这种写法
int main(void)
{
	return 0;
}

c.无返回值且有形式参数的写法(有的编译器上会报错)

void main(int argc,char *argv [])
{
	
}

d、有返回值且有形式参数的写法(在后续的Linux课程中将会遇到)

int main(int argc, char* argv[])
{
	return 0;
}
main可以有形式参数也可以没有,它的形式参数是有特殊意义的。需要使用形式参数时就写上,否则就可以不写

六、printf函数与库函数

①printf函数

printf函数是C语言标准库中提供的函数,功能:在屏幕上按照某种格式打印信息。print:打印,format:格式

②库函数
a.为了不再重复写常见的代码(如写一个函数按照某种格式在屏幕上打印信息、写一个函数求字符串的长度),提高程序员的开发效率,C语言标准中规定了一些函数(每个函数都规定了函数名、返回值类型、形式参数以及函数功能),再由不同的编译器厂商根据该规定实现这些函数,提供给程序员使用。这些函数组成了一个函数库,称为标准库,这些函数就被称为库函数。 在这个基础上⼀些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)。
b.同⼀系列的库函数⼀般会声明在同⼀个头文件中(比如,与字符串相关的库函数的声明就在头文件string.h中)。使用库函数前,一定要包含对应的头文件(函数要先声明后使用,包含头文件就相当于函数的声明)
c.C++中提供的库函数的链接

七、关键字(保留字)与标识符

①关键字(保留字):C语言中规定的一些具有特殊含义的名字,如int代表整型,return代表返回。

在这里插入图片描述
注:在C99标准中又加⼊了 inline 、restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键字。但使用最多的还是表中的32个关键字。

②标识符:程序员给变量、函数、数组等起的名称。
标识符的命名规则:只能由数字、字母(a ~ z与A ~ Z)、下划线组成,不能以数字开头,且不能与关键字重名。如2b就不符合标识符的命名规则。

八、字符与Ascll编码

①字符:用单引号引起来的内容。如’a’、‘@’、‘>’
②我们知道计算机中的所有数据都是以二进制的形式存储的,那么字符在内存中该如何存储呢?

如果我们每个人都给这些字符编一个二进制序列(编码),那么就无法统一表示这些字符。于是,美国国家标准协会(ANSl)就出台了一个Ascll编码。C语言中的字符就采用了Ascll编码。
在这里插入图片描述
我们不需要记忆Ascll码表中所有字符对应的Ascll码值,但最好要记一些常见字符的Ascll值。
在这里插入图片描述

int main()
{
	//打印Ascll码值为32到127的所有字符(即所有可见字符)
	int i = 32;
	while (i <= 127)
	{
		printf("%c ", i);
		i++;
	}
	return 0;
}

九、字符串与字符’\0’

①字符串:用双引号引起来的内容,如"abcd"就是字符串。
②字符串的结束表示是字符’\0’,也就是说字符串的末尾隐藏着一个字符’\0’。
③字符’\0’是字符串的结束标志,它也是空字符(null字符),表示没有内容 。它的ascll码值的十进制表示方式是0
④站在计算机的角度,正确理解字符串中的’\0’

有时在双引号内容的中间部分就会出现’\0’,此时就表示字符串结束了。比如“ab\0cd”,在人的角度会觉得该字符串中有6个字符,但计算机会认为该字符串中只有前3个字符。
在这里插入图片描述

⑤printf函数打印字符串时,遇到字符’\0’时就停下了;strlen函数求的是字符串中’\0’字符之前的字符个数
int main()
{
	printf("ab\0cd");//ab
	
	return 0;
}

在这里插入图片描述

十、转义字符

①何为转义字符?

转变原来意思的字符,属于一种特殊的字符
在这里插入图片描述

②三字母词(了解即可)
a.三字母词的由来

以前的老式键盘上,是没有“ [ ] { } ^| "这些字符的,c语言为了解决这个问题,就创建了三字母词(两个问号加一个其他的字符),在代码编译阶段,三字母词将会被解析成对应的字符。三字母词一共有9个,如下表所示:
在这里插入图片描述
代码示例:

在这里插入图片描述

如今键盘上可以敲出这些字符了,三字母词也就没多大用处了,因此很多编译器已经不支持三字母词了。

③转义字符表

在这里插入图片描述
在这里插入图片描述

④求含转义字符的字符串的长度
a.转移字符也是一个字符,只不过它有特殊的功能。

在这里插入图片描述

十一、空语句

①什么是空语句?

仅由一个分号组成的语句。

②空语句的使用场景

若某个地方需要写一条语句,且这条语句什么都不需要做,那么就可以写一条空语句。

十二、控制语句

①C语言一门结构化 的程序设计语言,C语言支持三种结构,分别是顺序结构(代码从上往下执行)、分支结构、循环结构。
②3类控制语句

在这里插入图片描述

相关文章:

  • 代码随想录算法训练营 | 图论 | DFS
  • 《几何原本》命题I.8
  • 【QGIS二次开发】地图显示与交互-01
  • 分类任务和回归任务的区别
  • 第八章 函数
  • LeetCode热题100JS(20/100)第四天|​41. 缺失的第一个正数​|​73. 矩阵置零​|​54. 螺旋矩阵​|​48. 旋转图像​
  • Arm64架构的Linux服务器安装jdk8
  • 叁[3],直线的角度问题
  • HTML-05NPM使用踩坑
  • clickhouse-介绍、安装、数据类型、sql
  • 编写一个基于OpenSSL的SSL/TLS服务端(HTTPS)可运行的完整示例
  • 深度解析 | 2025 AI新突破,物理信息神经网络(PINN):Nature级顶刊的「科研加速器」,70份源码论文速取!
  • run方法执行过程分析
  • 【笔记ing】python
  • 欧盟电动汽车销量下滑5.9%?电动车没人买了?
  • 【零基础到精通Java合集】第十集:List集合框架
  • deepseek使用记录20
  • 辛格迪客户案例 | 深圳善康医药科技GMP培训管理(TMS)项目
  • FlashAttention CUDA不匹配问题(CUDA的正确安装)与编译卡住问题解决方法
  • ⭐算法OJ⭐跳跃游戏【贪心算法】(C++实现)Jump Game 系列 I,II
  • 宁乡市建设局网站/市场调研一般怎么做
  • 怎么做金融营销网站/郑州seo阿伟
  • 部门网站建设的工作汇报/湖南网络推广公司大全
  • 400电话 网站建设/网络推广专员
  • 最优网站/深圳疫情防控最新消息
  • 建设国家游戏网站/长沙seo排名优化公司