Bootstrap

快速了解C语言基础知识-学习笔记

 

目录

1、 什么是C语言?

2.、C语言的历史与辉煌(为什么大家都推荐C语言作为计算机初学语言)

3、 编译器的选择和使用

3.1 编译和链接

3.2 编译器的选择

3.3 vs2022的优缺点

优点:

3.4 VS项目和源文件、头文件介绍

3.5 在VS上创建新项目

3.5.1 写代码前的步骤

​编辑

3.5.2 项目名称

3.5.3 项目存储路径

4 、main函数

5、 printf 和库函数

6 、关键字介绍

7、字符与ASVLL编码

 8、字符串和\0

9、监视窗口的打开和作用

9.1、打开

9.2、作用

10、转义字符

11、语句和语句的分类

11.1 空语句

11.2表达式语句

11.3函数调用语句

11.4复合语句

11.5控制语句

12、注释是什么,为什么要写注释?

12.1注释是什么

12.2注释该怎么写?


你是否想要揭开计算机编程的神秘面纱?那么,不妨从C语言开始,它是计算机编程的基石,带你领略编程的魅力和乐趣。接下来希望我的文章能让大家对C语言拥有有一定的认识。

1、 什么是C语言?

人和人交流需要使用语言,通常是汉语,英语等。

同样的,人和计算机交流也需要使用语言,计算机语言便因此应运而生。

目前人类已有的计算机语言已达上千种,而C语言便是众多语言中的一种,像C++/java/python都是计算机语言。

2.、C语言的历史与辉煌(为什么大家都推荐C语言作为计算机初学语言)

C语言最初是作为unix系统的开发工具而发明的。

截止到 2021 年,C语言已经发布了将近 50 年,是不折不扣的“大叔”或者“大爷”,但是,C语言在编程界依然非常流行;2019 年,C语言由于速度快、平台独立的特性,在世界编程语言排行榜中夺得第二名。


从特性方面讲,C语言是一种中级语言,它结合了低级语言速度快的特点,以及高级语言开发方便的特点;从应用方面讲,C语言也是一种高级语言,它可以用来编写电脑软件,或者开发嵌入式系统。

当需要开发一种新的编程语言时,C语言是最好的选择,因为C语言执行效率非常高,仅次于汇编语言。例如,目前常用的 Python、PHP、C++、Objective-C 都是在C语言的基础上进行开发的。  因此,学习了C语言之后,在学习其它语言的时候就会相对简单一些。

欧克,到目前为止,大家应该明白了C语言的重要性吧,后面我将为大家介绍C相关知识。

3、 编译器的选择和使用

3.1 编译和链接

 C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身是无法执行的,必须通过编译器编译链接器的链接,生成二进制可执行文件,可执行文件才能执行。(计算机语言识别的是二进制指令

C语言代码是放在.c后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译链接两过程。

一个工程一般都会有多个源文件组成,如下图所示,演示了源程序经过编译器和链接器处理的过程。

1.每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)

2.多个目标和库文件经过链接器处理生成对应的可执行程序(. exe文件)

3.2 编译器的选择

想要拥有流畅的操作当然离不开一个好的工具,因此,在选择编译器上当然要选择一个既简单又通用的工具。

因此,我就直接推荐编译器vs2022了(防止有选择困难症的人难办)。vs2022属于集成开发环境 

图标如下

集成开发环境(IDE)就是集成了代码编写功能,分析功能,编译功能,调试功能等一体化的开发软件服务器。包括代码编译器,调试器和图形用户界面等工具。

是不是很强?一个软件直接搞定。下面我将介绍一下它的优缺点(缺点是太强了)。

3.3 vs2022的优缺点

优点:

1:vs2022是一个主流的集成开发环境,企业中使用较为普遍

2:vs2022包含了:编辑器+编译器+调试器,功能强大

3:直接安装即可使用,基本不用额外配置环境,上手容易

4:默认界面是中文的,对初学者友好

缺点

功能太多了,导致安装包大,占用空间多。(太强大也是一种缺点)

这篇文章就不对比其他的编译器了,想看看其他编译器的可以去搜一下。这里就直接推荐我最适合新人的编译器了哈。

下载方法:

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux免费下载 Visual Studio IDE 或 VS Code。 在 Windows、Mac 上试用 Visual Studio Professional 或企业版。icon-default.png?t=N7T8https://visualstudio.microsoft.com/zh-hans/downloads/

安装教程:

VS2022安装使用教程,VS2022使用教程Visual Studio 2022详细安装使用调试教程C语言编译器C++编译器VS2022使用教程C语言软件安装_哔哩哔哩_bilibilivs2022使用教程,Visual Studio 2022详细安装使用调试教程C语言编译器,C++编译器,罗翔,C语言零基础学习,计算机二级,专升本。, 视频播放量 1099073、弹幕量 1229、点赞数 26598、投硬币枚数 14411、收藏人数 24265、转发人数 20421, 视频作者 鹏哥C语言, 作者简介 鹏哥C语言一对一答疑课程,在课堂栏目,相关视频:VS2022安装教程Visual Studio 2022下载详细安装使用调试教程VS2022使用教程C语言编译器,VS2022下载C语言软件安装C语言软件安装,vs2022(Visual Studio 2022)权威指南&&C语言&&软件工程开发的方向&&技巧要领,Visual Studio 2022安装使用和调试C++入门,建议所有C语言基础差的同学,死磕这条视频。,【郝斌】-C语言自学入门教程(182集全 | 最新高清修复版),C语言程序设计 知识点精讲(全集) 从零开始手把手教你编程,手把手教你卸载Visual Studio2022预览版(卸载VS2022),VS2022安装教程Visual Studio 2022使用教程VS2022使用教程C语言软件安装VS2022下载安装使用教程C语言编译器C++编译器,VS(Visual Studio)2015视频安装教程包含安装包和安装教程文本,VS2022安装教程Visual Studio 2022使用教程VS2022使用教程激活教程C语言软件安装VS2022下载安装使用教程调试教程C语言编译器icon-default.png?t=N7T8https://www.bilibili.com/video/BV11R4y1s7jz/

3.4 VS项目和源文件、头文件介绍

在VS上写代码,我们是要创建新项目的,直接新建项目就可以了。

在项目中可以添加源文件和头文件。

C语言把.c 为后缀的文件称为源文件,把.h 为后缀的文件称为头文件。

3.5 在VS上创建新项目

3.5.1 写代码前的步骤

1、创建项目(代码最好放在项目中进行管理和维护)

2、创建.c文件

3、写C语言代码,要严格按照C语言的语法来写!!

3.5.2 项目名称

1、项目名称最好有自己的实际意义

2、项目名称最好不要有中文

3、不要使用特殊符号

3.5.3 项目存储路径

1、代码的位置要放到一个自己能找到的地方

2、代码路径不要包括空格、特殊字符、中文字符。

在vs2022上运行代码快捷键:

ctrl+F5

Fn+ctrl+F5(有的需要加上Fn)

4 、main函数

每个C语言程序不管有多少行代码,都是从 main 函数开始执行的,main 函数是程序的入口,main 函数也被叫做:主函数。main 前的 int 表示 main 函数执行结束的时候返回一个整形类型的值。所以在 main 函数的最后写return 0; 正好开始呼应。(有点抽象)简单来说,程序的执行是从main函数的第一行开始执行的,有main函数程序才能被执行

main函数样子


int main ()//这个括号是英文符号
{

   return 0;//分号也是英文分号
}

代码就写在大括号里

1、main函数是程序的入口

2、 main函数有且仅有一个

3、即使一个项目中有多个.c文件,但是只能有一个main函数(程序入口只能有一个)

5、 printf 和库函数

 1 printf("welcome to China.");

代码中使用printf函数,实现了在屏幕上的信息的打印。如下图

printf函数也就是库函数

使用库函数是需要包含头文件的,比如:printf函数需要包含的就是stdio.h这个头函数,具体方法如下

1 #include <stdio.h>

那什么是库函数呢?

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

6 、关键字介绍

     C语言中有一批保留的名字的符号,比如:int、 if、retuen,这些符号被称为保留字或者关键字。是编程中用于指定数据类型、控制结构等功能的保留字。

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

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

~关键字也是不能自己创建的。

下面是C语言的32个常用关键字

注:在C99标准中加⼊了 inline 、 restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键字。 ⼀些关键字⼤家可以去了解⼀下,不过使⽤最多的还是上⾯的32个关键字。

常见关键字的作用介绍如下

1. 数据类型关键字:包括int(整数)、float(浮点数)、double(双精度浮点数)、char(字符)和void(无类型)。
2. 控制结构关键字:包括if(条件语句)、else(条件语句的另一种选择)、switch(多条件选择语句)、case(switch语句中的选项)、while(循环语句)、do(循环语句)、for(循环语句)、break(跳出循环)和continue(继续下一次循环)。
3. 存储类别关键字:包括auto(自动存储变量)、register(寄存器存储变量)、extern(外部声明变量)和static(静态存储变量)。
4. 其他关键字:包括return(从函数返回)、const(定义常量)、volatile(指示变量可能被外部因素更改)、typedef(为数据类型定义别名)和enum(枚举类型)。

了解这些关键字有助于编写规范的C语言程序。

想了解更多的可以进入下面网址,观看更多关键字详解

C 关键词 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/c/keyword(C语言所以关键字介绍)

7、字符与ASVLL编码

 在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。单个字符的打印可以使用%c来指定格式。

我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这就叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语言中的字符就遵循了ASCII 编码的⽅式。

强调一下哈,千万不要想着全部背下来啊!!!咱们是来学习技术的,不是来练习最强大脑的。需要的时候可以查这张表格。切记切记!!!

参考

ASCII 码表 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/cpp/language/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个字符是不可打印字符,无法打印在屏幕上观察

• 字符其实也属于整型家族

比如:可打印字符展示(32-127)

 8、字符串和\0

C语言中是如何表示字符串的呢?使用双引号括起来的一串字符就被称为字符串,如:"abcdefg"

注意,这里使用的符号都是英文符号。

字符串的打印格式可以使用%s来指定,也可以直接打印

C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串的结束标志。

int main ()
{
   //在字符串的结尾隐藏着一个\0 ,这个 \0 是字符串结束的标志
   "abcdef";//a b c d e f \0
   "China";//C h i n a \0
    return 0;
}

 注:\0需要通过监视才能看到

对于字符串"abcdef",我们实际上看到六个字符:a b c d e f 但是实际上在末尾还隐藏着一个 \0 转义字符。\0是字符串结束标识。

接下来我们来验证一下 \0 的作用

我们知道arr1中有a b c \0 。因此arr1在打印完abc后就停止了。而arr2中只有a b c,所以后面还打印了一些随机值。由此,可以说明\0的作用以及重要性。

看到这相信大家也累了,我来给大家讲一个笑话当中中场休息吧。

有位来自农村的同学,上大学后第一次接触电脑,在上计算机课程的时候,老师让他们把这个代码敲出来,并让它运行起来。然后这位同学就哐哐哐的敲代码,但是呢由于不太熟练,导致敲错了,等他把代码运行起来的时候,屏幕上出现了一堆烫烫烫烫烫,把这位同学吓到直接将电脑关机并大声对老师说:老师,老师,电脑说它好烫。哈哈哈哈哈哈哈哈哈!

9、监视窗口的打开和作用

9.1、打开

言归正传,接下来说一下怎么观察这个现象,我们要在调试中找到监视功能,它在vs2022里面的路径是【调试】->【窗口】->【监视】,但当我们打开此路径,我们并没有找到监视的功能。

这是怎么个一回事,你这不是白说了吗?不要着急,之所以找不到监视是因为监视必须是代码在调试的条件下进行,所以按下ctrl+F10,开始调试程序,此时再来到刚才的路径,就能找到监视的窗口了。

在进入调试状态后,比如想要监视某一个变量,添加本代码变量于监视窗口中添加完待监视项后,按f10 代码会一步一步运行,待监视项便也随着代码运行进行改变。(监视窗口打开后输入字符串即可开始监视

我们可以发现对于字符串"abc",我们实际上看到了3个字符:a,b,c,但是实际上在末尾还隐藏⼀个 \0 的 转义字符, \0 是字符串的结束标志。所以我们在使⽤库函数 printf() 打印字符串或者 strlen() 计算字符串⻓度的时候,遇到 \0 的时候就⾃动停⽌了。

9.2、作用

1、便于理解代码,对代码工作原理运行顺序的理解都很有帮助

2、可以方便地在大型工作表中检查、审核或确认公式计算及其结果。使用监视窗口,无需反复滚动或定位到工作表的不同部位。

10、转义字符

转义字符就是转变字符的意思,哈哈,是不是通俗易懂?前面的\n、\0等都是转义字符

C语言中向这样的转义字符有很多,具体如下

• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

• \' :⽤于表⽰字符常量'(想打印单引号时用\将'转换成字符)

• \" :⽤于表⽰⼀个字符串内部的双引号(想打印双引号时用\将'转换成字符)

• \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。(相当于\\=1个\)

• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

• \b :退格键,光标回退⼀个字符,但不删除字符。(覆盖前面那个字符)

• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。

• \n :换⾏符。

• \r :回⻋符,光标移到同⼀⾏的开头。

• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。(让输出的内容更美观和可读)

• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式

• \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表示字符X(字符八进制的表示形式)

• \xdd :d d表⽰2个⼗六进制数字。 如: \x30 表示字符0(字符十六进制的表示形式)

• \0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.

对于转义字符需要能在字符串中识别出来。

转义字符参考

转义序列 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/c/language/escape

11、语句和语句的分类

凡是语言类都需要语句,C语言也是如此。

C语言的代码是由一条一条语句构成的,C语言中的语句可以分为以下几类

空语句

表达式语句

函数调试语句

复合语句

控制语句

后面一个一个介绍。

11.1 空语句

    空语句是最简单的,一个分号就是一条空语句。

#include <stdio.j>
int main()
{

   ;//空语句
   return 0;
}

    空语句一般出现的地方是:这里需要一条语句,但是这个语句不需要做任何事,就可以写一个空语句。

11.2表达式语句

表达式语句就是在表达式的后边加上分号。如下

#include <stdio.h>
int main()
{
    int a = 10;
    int b = 0;
    b = a + 7;//表达式语句
    return 0;
]

11.3函数调用语句

函数调用的时候,也会加上分号,就是函数调用语句。

#include <stdio.h>
int Add(int x,int y)
{
 return x+y;
}


int main()
{
   printf("China");//函数调用语句
   int ret = Add (1,2);//函数调用语句
   return 0;
}

11.4复合语句

复合语句就是前面讲过的代码块,成对括号中的代码就构成了一个代码块,也被称为复合语句。

#include <stdio.h>
int main()
{
   int i = 0;
   int arr[10] ={0};
   for(i=0; i<10; i++)//for循环的循环体的大括号中的就是复合语句
  {
   arr[i] = 10-1;
   printf("%d\\n",arr[i]);
  }
    return 0;
}

11.5控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。

可分成以下三类:

1. 条件判断语句也叫分⽀语句:if语句、switch语句;

2. 循环执⾏语句:do while语句、while语句、for语句;

3. 转向语句:break语句、goto语句、continue语句、return语句。

12、注释是什么,为什么要写注释?

12.1注释是什么

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响

注释是给程序员⾃⼰,或者其他程序员看的。

好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。

当然不写注释可能会让后期阅读代码的⼈抓狂。 写注释⼀定程度上反应了程序作者的素质,建议⼤家写必要的注释,在未来找⼯作的时候,写代码时 留下必要的注释也会给⾯试官留下更好的印象。

12.2注释该怎么写?

在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:

  • 一种是以/*开始、以*/结束的块注释(block comment);
  • 另一种是以//开始、以换行符结束的单行注释(line comment)。

可以使用/**/分隔符来标注一行内的注释,也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。注释解释了这个可选参数的用法:

1 int open( const char *name, int mode, … /* int permissions */ );

可以使用//插入整行的注释,或者将源代码写成两列分栏的格式,程序在左列,注释在右列:

1 const double pi = 3.1415926536;       // pi是—个常量

在 C99 标准中,单行注释正式加入C语言,但是大部分编译器在 C99 之前就已经开始支持这种用法。有时候,其被称作“C++风格”的注释,但实际上,其源自于C的前身 BCPL。


在引号中,如果采用/*//分隔一个字符常量或字符串字面量(string literal),它们都不会被视为注释的开始。例如,下面语句就没有注释:

1 printf("Comments in C begin with /* or //.\n" );

预处理器仅通过检查注释的结束符来检测注释中的字符,因此,不能嵌套块注释。然而,可以使用/**/注释包含单行注释的源代码:

1 /* 暂时注释掉这两行:
2     const double pi = 3.1415926536;  // pi是一个常量
3     area = pi * r * r;   // 计算面积
4 暂时注释到此 */


如果想要注释掉包含块注释的部分程序,可以使用条件预处理命令:

1 #if 0
2   const double pi = 3.1415926536;   /* pi是一个常量      */
3   area = pi * r * r ;  /* 计算面积     */
4 #endif

预处理器会把每个注释都替换成一个空格。因此,min/*max*/Value变成两个标记min Value

;