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

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

目录

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

顺序:

选择:

注意事项:

循环:

函数

数组

操作符

关键字

指针

结构体


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

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

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

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

顺序:

选择:

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

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

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

注意事项:

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

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

循环:

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

循环语句格式:

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

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

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


函数

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


数组

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

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

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


操作符

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

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

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


关键字

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

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

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

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

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

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

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


指针

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

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

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

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

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

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

指针变量的定义:

指针变量的使用:

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

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


结构体

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

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

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

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

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


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

  • 38
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值