初识C语言

1.C语言是什么

人和人交流的语言是人话(语言),动物与动物交流的语言是动物话(语言)。那么人和计算机交流就是计算机话(语言),C语言就是人与计算机交流的语言,人们通过计算机语言写的程序给计算机下达工作指令

2.谁发明了C语言

1972年丹尼斯.里奇和布莱恩.柯林汉发明了C语言。

3.编译和链接

C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器的翻译和链接器的链接,生产可执行文件才能执行。

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

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

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

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

4.第一个C语言程序

这里我以VS2022为例

VS2022的安装教程:https://www.bilibili.com/video/BV11R4y1s7jz/

接下来就可以写我们的第一个C语言程序了

快捷运行:Ctrl+F5

 5.main函数

每个C语言程序不管有多少行代码,都是从main函数开始执行的,main函数是程序的入口,main函数也叫主函数。main函数前面的int表示main函数执行结束的时候返回一个整型类型的值。所以在main函数的最后写return 0;正好前后呼应。(return 0是约定返回0,因为C语言中,正常返回一般我们返回0,异常返回我们才返回非0的值)

注:

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

第一次写代码常见错误总结:

1.main函数写成mian

2.main后边的()漏掉了

3.代码中不能使用中文文件,比如括号和分号

4.一条语句结束后有分号

6.printf和库函数

在上面的代码中有一句代码如下:

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

printf是一个库函数,它的功能是在标准输出设备(一般指屏幕)上进行信息的打印。上面的代码就是使用printf函数打印字符串。只要把想要打印的一串字符放在双引号中并传递给printf函数就可以打印。

库函数的时候,是需要包含头⽂件的,⽐如:printf函数需要包含的头文件就是stdio.h这个头文件具体方法是:

那什么是库函数呢?

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

7.关键字的介绍

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

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

C语言有32个关键字如下:

8.字符和ASCII编码

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

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

ASCII码表参考:https://zh.cppreference.com/w/cpp/language/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个字符是不可打印字符,⽆法打印在屏幕上观察

单个字符的打印可以使用%c来指定格式:

122就是‘z’对应的ASCII码值

9.字符串和\0

C语⾔中如何表⽰字符串呢?使用双引号括起来的一串字符就被称为字符串,如:"abcdef",就是一个字符串。字符串的打印形式使用%s来指定,也可以直接打印如下:

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

对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏⼀个 \0 的 转义字符,\0是字符串的结束标志。所以我们在使用库函数printf()打印字符或者strlen()计算字符串长度的时候,遇到\0就自动停止了。

C语⾔中也可以把⼀个字符串放在⼀个字符数组中,我们在这⾥利⽤下⾯的代码验证⼀下 \0 的功能。

我们可以看到,arr1字符数组在打印的时候,打印了a,b,c后面还打印了一些随机值,这就是因为arr1在末尾的地方没有\0字符作为结束标志,在打印的时候没有停止。但是arr2的打印就是完全正常的,就是因为 arr2 数组是使⽤字符串常量初始化的,数组中有 \0 作为技术标志,打印可以正常停⽌。

那么我们试试在arr1数组中单独放一个'\0'字符会怎么样?

这里我们就看到三次打印的结果是一样的了,都是打印到'\0'就停止了,那从上述例子我们确实能够观察到\0的重要性。

10.转义字符

也许在前面的代码中你看到\n,\0的时候会不理解,其实在字符中有一组特殊的字符是转义字符,转义字符顾名思义:转变原来意思的字符。

⽐如:我们有字符 n ,在字符串中打印的时候⾃然能打印出这个字符,如下:

那我们如果在n前面加上\会变成什么样呢?

我们可以看到修改的前后代码输出的结果,截然不同的,这就是转义字符的问题, \n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思 发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。

C语⾔中像这样的转义字符还有⼀些,具体如下:

\?:在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词

\':⽤于表⽰字符常量'

\":⽤于表⽰⼀个字符串内部的双引号

\\:⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

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

\b:退格键,光标回退⼀个字符,但不删除字符。

\f:换⻚符,光标移到下⼀⻚。

\n:换⾏符

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

\t:制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数

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

特殊的转义字符

\ddd :ddd表⽰1~3个⼋进制的数字。如: \130表⽰字符X

\xdd:dd表示2个十六进制数字。如:\x30 表示字符0

\0:null字符,代表没有内容,\0就是\ddd这类转义字符的一中,用于字符串的结束标志,其ASCII码值为0。

这些ASCII码值是可以⾃⼰写代码验证的,⼤家也可以⾃⼰验证。 关于转义字符我们⾸先要了解,然后要能在字符串中识别出来。

11.语句和语句分类

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

1.空语句

2.表达式语句

3.函数调用语句

4.复合语句

5.控制语句

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

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

-表达式语句

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

-函数调用语句

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

-复合语句

复合语句其实就是前⾯讲过的代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。

-控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构,选择结构,循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

可分以下三类:

1.条件判断语句也叫分支语句:if语句,switch语句;

2.循环执行语句:do while语句,while语句,for语句;

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

我会在后面的博客中一一给大家介绍。

感谢浏览

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值