初识C语言:掌握未来的编程利器

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨

​ 🎈🎈养成好习惯,先赞后看哦~🎈🎈

​ 所属专栏:C语言学习

​ 贝蒂的主页:Betty's blog

1. C语言是什么

在我们生活中,我们和父母、朋友、老师交流时候使用的就是语言,在这个世界上有许多的国家、民族,自然也有很多语言如:汉语、英语、法语等等,这种人与人交流使用的语言我们称为自然语言 。然而计算机并不能理解我们的语言唉,那我们又该如何去与它交流呢,这时候就有人发明了如:Python,C++,JAVA等计算机语言。C语言便是其中最具有代表性之一。

下表是常见的计算机语言以及应用场景:

编程语言 应用场景
C/C++ C++是在C语言基础上演变而来的,所以应用场景也非常类似。主要应用于嵌入式开发,客户端开发和游戏开发等领域
C# 相比于C/C++,C#的应用场景就窄了许多,主要应用于Windows服务应用程序和游戏开发领域
Python Python这些年来随着人工智能的爆火而流行起来,它的应用场景也很多:网络爬虫,数据分析,人工智能等领域
Java Java相对于C/C++更易理解,常用于桌面应用程序,Web应用程序,移动应用程序
HTML HTML作为一种用于创建网页的标记语言,可以实现网页制作、响应式网页设计和在线表单等功能
JavaScript JavaScrip是前端开发的一门脚本语言,和Java没有任何关系

2. C语言的历史与辉煌

C语言是由美国计算机科学家丹尼斯·里奇(Dennis Ritchie) 和**肯·汤普森(Ken Thompson)**在20世纪70年代初期开发出来的一种程序设计语言。其开发的背景是在当时,计算机硬件越来越先进,但软件开发却还停留在汇编语言阶段,需要一种更高级的语言来提高软件开发效率。

C语言最初是在Unix操作系统下开发的,用于实现该操作系统的内核和系统工具。在此后的几年中,C语言逐渐被广泛应用于其他领域,如编译器、操作系统、数据库、游戏开发等。

1983年,ANSI(美国国家标准协会)开始制定C语言的标准,称为ANSI C。1990年,国际标准化组织(ISO)也发布了C语言的标准,称为ISO C。这些标准定义了C语言的语法、库函数等方面的规范,并为C语言的跨平台移植提供了基础。

在C语言的历史上一共有三次比较大的改变,分别为:C89标准C99标准C11标准

​ 随着计算机技术的不断发展,C语言也不断演化和改进。目前,C语言已经成为一种广泛应用的程序设计语言,仍然被广泛使用于各种领域。同时,C语言也对其他编程语言的发展产生了深刻影响,如C++、Java等。

​ 即使诞生至今已有数十载,世界上早已诞生了数千种语言,但C语言一直稳居计算机语言排行榜前三的位置,可见其的重要性

3. 编译与连接

C语⾔是⼀⻔编译型 计算机语⾔,C语⾔源代码都是⽂本⽂件,⽂本⽂件本⾝⽆法执⾏,必须通过编译器编译 和链接器的链接,⽣成⼆进制的可执⾏⽂件,可执⾏⽂件才能执⾏

图像演示:

  • 每个源⽂件(.c)单独经过编译器处理⽣成对应的⽬标⽂件(.obj为后缀的⽂件)
  • 多个⽬标⽂件和库⽂件经过链接器处理⽣成对应的可执⾏程序(.exe⽂件)
  • 这里先简单介绍一下,后面会详细为大家接受该过程

4. 集成开发环境

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

以下是常见的集成开发环境

集成开发环境 优点 缺点
VS2022 功能强大支持多种编程语言,提供了丰富的开发工具和调试器 安装包较大
XCode Xcode功能多样,方便调试观察 只适用于苹果电脑
CodeBlocks 轻量级的集成开发环境,专门针对C和C++语言 需要配置环境
Dev-C++ 简单易用,特别容易上手 语法检查不严,已经不在维护
CLion 功能丰富,有自动纠错功能 收费

综合下来来看,笔者还是选择了VS2022的集成开发环境:VS下载教程

5. 第一个C语言程序

5.1 创建一个项目

  1. 点击右上角视图
  1. 右击源文件
  1. 选择C++文件

5.2 hello world

c 复制代码
#include<stdio.h>
int main()
{
	printf("hello world");
	return 0;
}

Ctrl+f5 执行程序

输出结果:hello world

  1. 每个C语⾔程序不管有多少⾏代码,都是从 main 函数开始执⾏的, main 函数是程序的⼊⼝,main 函数也被叫做:主函数 。 main 前⾯的 int 表⽰ main 函数执⾏结束的时候返回⼀个整型 类型的值。所以在 main 函数的最后写 return 0, 正好前后呼应。

include<stdio.h>是一个头文件 ,里面包含了我们常用的printf,scanf等库函数,就像工具箱一样我们每次要使用"工具"都要找出工具箱,所以我们用使用库函数一定包含对应的头文件

  1. printf是一个库函数,它的作用为打印我们想打印的数据,注意括号里一定要加**" "**
  2. C语言每条语句结束后都要加**;**,表示一段代码的结束

6. 字符和ASCII表

6.1 什么是字符

像**'a','b','c','1','#'** 等由单引号引起来的变量,我们称为字符

6.2 转义字符

而在字符中有一种特殊的字符,比如'\n','\0',这些特殊的字符,我们称它为转义字符,并且每一个转移字符都有特殊含义。下面是一些常见的转义字符及其含义。

转义字符 意义
\a 响铃(BEL)
\b 退格(BS) ,将当前位置移到前一列
\f 换页(FF),将当前位置移到下页开头
\n 换行(LF) ,将当前位置移到下一行开头
\r 回车(CR) ,将当前位置移到本行开头
\t 水平制表(HT) (跳到下一个TAB位置)
\v 垂直制表(VT)
\\ 代表一个反斜线字符""
\' 代表一个单引号(撇号)字符

注意事项:

区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换

6.3 ASCII表

我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些a','b','@'字符在内存中分别以什么样的⼆进制存储的呢?

所以有人为它们每个字符都编了个二进制序列,这个叫做编码 ,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C语⾔中的字符就遵循了ASCII编码的⽅式。

  • 其中Dec是十进制,Oct是八进制,Hex是十六进制,Chr是编码。
  • 字符A~Z的ASCII码值从65~90
  • 字符a~z的ASCII码值从97~122
  • 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
  • 数字字符0~9的ASCII码值从48~57
  • 在这些字符中ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在屏幕上观察

7. 字符串

7.1 字符串是什么

那什么是字符串呢?使⽤双引号括起来的⼀串字符就被称为字符串 ,如"abcd","1234",但是和字符不同的是,字符串会在结尾默认加个**'\0'**,作为其结束标志

7.2 打印字符串

c 复制代码
	printf("hello world");
	puts("hello world");
  • 打印字符串可以有多种方式,后续会为大家详细讲解

8. 关键字

C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字 或者关键字

注意:

  • 关键字都有特殊的意义,是保留给C语⾔使⽤的
  • 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
  • 关键字也是不能⾃⼰创建的

下面是常见的32个关键字:

auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile

9. 注释

9.1 注释的含义

在 C语言中,注释是程序中的一种特殊语句,在程序进行时,会被编译器跳过 ,用于向程序的读者解释代码的作用和用途。注释是程序员编写代码时的重要工具,可以提高代码的可读性和可维护性。在我们的代码中增加合理的注释,也能给面试官留下好的印象。

9.2 单行注释

双斜杠 // 后⾯,从双斜杠到⾏尾都属于注释。这种注释只能是单⾏,可以放在⾏⾸,也可以放在⼀⾏语句的结尾。这是C99标准新增的语法。

示例:

c 复制代码
#include<stdio.h>
int main()
{
	printf("hello world");//放在末尾用于备注
	//放在开头用于注销这段代码
	//puts("hello world");
	return 0;
}

9.3 多行注释

注释放在 /*...*/ 之间,内部可以分⾏。也就是说可以一次性注释多行代码

c 复制代码
#include<stdio.h>
int main()
{
	/*printf("hello world");
	return 0;*/
	
}
  • 不管是哪⼀种注释,都不能放在双引号⾥⾯。双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。
相关推荐
hutaotaotao1 小时前
c语言用户不同命令调用不同函数实现
c语言·开发语言
lb36363636361 小时前
介绍一下位操作符(c基础)
c语言·知识点
vortex54 小时前
解决 VSCode 中 C/C++ 编码乱码问题的两种方法
c语言·c++·vscode
Xiao Fei Xiangζั͡ޓއއ4 小时前
一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
c语言·开发语言·笔记·程序人生·面试·蓝桥杯·学习方法
子朔不言4 小时前
[ARM-2D 专题]6.脏矩形定义的宏使用技巧和分析
c语言·arm开发·arm2d·显控开发-新龙微
BT-BOX5 小时前
STM32仿真proteus位带操作和keil增加头文件C文件
c语言·stm32·proteus
醉颜凉5 小时前
【NOIP提高组】潜伏者
java·c语言·开发语言·c++·算法
五味香8 小时前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
lb36363636369 小时前
整数储存形式(c基础)
c语言·开发语言
浪里个浪的10249 小时前
【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
c语言·开发语言·矩阵