C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)

        在上一篇中我们对C语言的数据类型,常量变量,转义字符有了个大概的了解,下面让我们来简单认识一下C语言的结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体部分。

目录

结构(顺序,选择(分支),循环)

顺序:

选择:

注意事项:

循环:

函数

数组

操作符

关键字

指针

结构体


结构(顺序,选择(分支),循环)

        任何计算机语言的出现都是为了通过计算机来更好的解决现实生活的的种种事件(对现实世界的抽象)。

        C语言是一种结构化程序设计语言。在C语言看来,这个世界上的任何事情都可以抽象成三种结构的排列组合,分别是顺序,选择,循环。

        顾名思义,顺序:即按部就班的依次执行程序,就像一个人按部就班的过完他的一生。选择:一个人的一生中面临着诸多选择,如选择好好念书或者辍学打拼,追逐梦想或者面对现实,奋斗或者躺平,每一种选择都会带来不同的影响,在C语言中也一样会面临着诸多选择,这些选择通过选择语句来实现。循环:在某一条件下,重复的执行一句或者一段代码即循环,通过循环语句实现。就像在生活中,我们往往会日复一日的重复着做着一些事情,像是上学,上班。

顺序:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第1张图片

选择:

单分支语句格式:if(条件表达式) {语句1;语句2;...} 如果表达式结果为真,则执行 {} 内的代码段,反之则不执行。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第2张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第3张图片

双分支语句格式:if(条件表达式) {语句1; 语句2; ...} else{语句1; 语句2; ...} 如果表达式结果为真,则执行if 语句的内容,反之则执行else语句中的内容。                                                              

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第4张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第5张图片

多分支语句格式:if(条件表达式){语句1; 语句2; ...} else if(条件表达式) {语句1; 语句2; ...} ... else{语句1; 语句2; ...} 如果 if 表达式结果为真,则执行if 语句的内容,反之则判断else if 表达式是否为真(可以有多个else if 语句)为真则执行,反之则执行else语句内容。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第6张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第7张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第8张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第9张图片

注意事项:

1.  条件语句默认只对下一句语句生效,如果同一条件下要执行多条语句,要用 {} 将多条语句括起来(即使只有一条语句也推荐这种写法,让程序显得逻辑更加清晰明了)。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第10张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第11张图片

2.  if() {} else if() {} ... else 是一个整体,即使它们的条件表达式都满足,也最多只能有一个条件语句的作用域被执行(谁先被判断谁执行)。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第12张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第13张图片

循环:

        在现实生活中往往有许多事情需要重复去做,就比如我们想要通过程序检测3个人的智力水平时,在没有循环的情况下需要重新运行程序三次,而通过循环就可以一步到位。

循环语句格式:

while(条件表达式) {语句1;语句2;...} 当条件表达式为真时,则重复执行循环语句作用域的代码,直到表达式为假时跳出循环。

do{语句1;语句2;...}while(条件表达式);(C语言结构篇中详细介绍)

for(初始化;条件表达式;变化){语句1;语句2;...}(C语言结构篇中详细介绍)

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第14张图片


函数

        C语言中的函数与数学中的函数是两个概念,函数可以看作C语言的子程序,其目的是简化代码与复用(库函数也属于函数)。示例如下:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第15张图片


数组

        当我们要存储一个数据时可以定义一个变量,那要存储10个同类型的变量呢?是否要创建10个同类型变量?答案当然是否定的,10个变量既不好操纵又不好管理且编程困难,这就是数组存在的意义。

        C语言中数组的定义:一组相同类型元素的集合。定义格式如下:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第16张图片

        那么要如何对数组中存储的元素进行访问呢?C语言规定:数组的每个元素都有一个下标,下标是从0开始的。数组是通过下标来访问的(某元素是数组中的第 n 个元素,那么它的下标就是 n - 1)。示例如下:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第17张图片


操作符

        C语言的操作符有很多,像+,-,*,/,%等等,这里我们只需了解= ,== ,/ ,% 即可,剩余操作符会在操作符篇中详细介绍。

        C语言中的 = 与数学中的 = 含义不同,C语言中, = 表示赋值的意思,比如x = 5的意思是把5的值赋给 x,而数学中的 = 表示相等的意思,等价于C语言中的 == ,示例如下:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第18张图片

        C语言中的 / 与数学中的 / 略有区别,数学中的 / 会一直算到除尽为止,而C语言中的 / 会舍弃余数,而 % 则是求余数的操作符(仅适用于整型), 示例如下:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第19张图片


关键字

        所谓关键字,即语言本身预先设定好的,具有特殊作用的一些词语。用户自己是不能创建关键字的。C语言一共有32个关键字:

这里我们着重介绍两个关键字,分别是 typedef(非常好用) 和 static(能不用就不用) 。

typedef的作用是类型重命名:如如果嫌 long long类型名字太长,就可以用typedef为它重新命名(与#define定义标识符具有一定相似性,但本质上区别很大,后期会详细对比):

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第20张图片

static 有三种用法,分别是用来修饰 局部变量,全局变量,函数。

修饰局部变量时,此局部变量成为静态局部变量,生命周期延长为整个工程的生命周期:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第21张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第22张图片

正常情况下,全局变量的作用域为整个工程,即同一工程下的所有源文件都可以使用它,而被static修饰后,其作用域被限定为本源文件内,其他同一工程下的源文件不能再使用,此时的全局变量为静态全局变量:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第23张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第24张图片

修饰函数与修饰全局变量时作用相同,此时函数为静态函数,只能在本源文件内使用:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第25张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第26张图片


指针

在介绍指针之前,需要先对内存与地址有一个认识。

内存:内存是计算机重要且珍贵的硬件资源,计算机上所有的程序的都是运行在内存中的。为了能够合理有效的使用内存,就把内存划分为一个个小的内存单元,那么这个内存单元应该多大呢?如果以一个 bit 为单位,一个char类型的变量就需要8个内存单元,如果以4个字节为单位,则char 和short 类型的变量连一个内存单元的大小都不够,因此选择1个字节作为内存单元的大小。划分好内存后,如何有效的访问到每个内存单元呢?当然是给每个内存单元都编一个唯一的号码,这些号码就被称为内存单元的地址。

地址:有了地址后,就可以准确访问想要访问的内存单元,就像当有了某人的地址后,就可以快速精准的找到某人。那么计算机是如何给内存单元编址的呢?32位机器上一共有32根地址线,每根地址线可发出0或1的电信号,一共就可以产生2^32种电信号,从32个 0 开始到32个 1 结束,每一种电信号都对应一个内存单元,因此32位机器所能掌控的最大内存为4G。64

位机器同理。指针实际上就是地址,而我们口语中所称的指针所指的是指针变量。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第27张图片

由于变量是在内存中创建的,而内存中的每个内存单元都有地址,因此变量也是有地址的,我们可以通过操作符 & 取出变量的地址(如果变量的大小大于1个字节,取出的则是变量第一个字节的地址。)

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第28张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第29张图片

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第30张图片

指针变量:取出来的地址可以通过指针变量来存储和使用。

指针变量的定义:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第31张图片

指针变量的使用:

我们可以通过解引用操作符 *(与定义指针时的 * 含义不同)来对指针变量存放的地址寻址从而间接操作变量。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第32张图片

        此时有同学就会有疑问,这样做不是多此一举吗?为何我们不直接操作想要操作的变量呢?当然是因为在有些情况下,我们并不能直接通过变量名操作想要操作的变量,只能通过地址来间接操作变量。


结构体

        在编程中,我们想要描述的事物往往具有多种属性,单一的属性并不能完整的描述该事物,比如描述学生需要描述:姓名,性别,年龄,学号等等。这就是结构体存在的意义。

        数组的定义是一组相同类型元素的集合,而结构体的定义则是:结构体是一些值的集合,这些值称为成员变量。结构的每个成员可以相同类型的变量,也可以是不同类型的变量。

        结构体是自定义类型的一种,它使得C语言具有描述复杂类型的能力。

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第33张图片

当我们有一个结构体变量时,可以通过操作符 . 来访问此结构体变量的成员:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第34张图片

当我们有一个结构体变量的地址时,可以通过操作符->来访问此地址对应的结构体变量的成员:

C语言初学者必看篇二(结构(顺序,选择(分支),循环),函数,数组,操作符,关键字,指针,结构体)_第35张图片


至此,C语言的初识篇就正式结束了,相信大家已经对C语言有了一个初步的了解,接下来就可以正式开启C语言的学习之旅啦,祝大家能学有所得,学有所成。

你可能感兴趣的:(C语言初学者必看篇,c语言,开发语言,1024程序员节)