重新复习一下 static 关键字,代码如下所示:
关于指针,指针是用于存储地址的变量,其类型是 int* 因此在定义指针或者给指针赋值时,一般的类型是: "int * p = " 注意,指针的类型是 int* ,但是指针的名称一般是p
同时,我们在获取了某个数据存放的地址之后,为的就是可以通过地址来直接 修改 或者 调用这个数据,那么就需要通过“解引用操作符” ,如下所示:
为了更进一步理解指针类型中的 * 和解应用操作符 * 如下所示:
1、
结构体----用于描述复杂对象
结构体就是我们自己创造出来的一种类型,可以理解为将复杂对象的一系列参数包含进来。通过结构体类型创造的结构体变量的创建过程如下:
通过 b1.price 的操作,可以修改在结构体中定义的变量,如下所示:
结合到之前的指针变量中,int 定义的变量的地址存放在指针里,对应的指针就是 int*,可是现在所面对的是结构体struct, 那么如果将结构体对应的地址存放在某一个指针变量中,那该指针的类型是什么样子的呢。如下:
struct Book b1={"万历十五年",55};
struct Book*p1=&b1;
既然可以使用指针对结构体变量的地址进行存储,那么联想到之前的 解引用操作符 达到修改,打印书名和价格的操作,如下所示:
另一种通过指针对结构体的操作方式如下:
综上,两种操作符的区别在于 第一种: . 应用的场景是:结构体变量 . 结构体成员;而第二种: ->应用的场景是: 结构体指针 -> 结构体成员
2、分支和循环语句
C语言是一门 结构化 的程序设计语言,在我们的日常生活中一共有三种常见结构:
(1)顺序结构
(2)选择结构
(3)循环结构
所谓顺序结构,顾名思义,只要按照既定的顺序就可以完成;选择结构则需要在事情发生时进行选择;循环结构有可能会一直循环也有可能会跳出循环。这也是C语言中的三种结构,可以描述C语言中的所有逻辑。
重点介绍选择和循环两种结构
首先进行一个总体的介绍,分支语句也叫做选择语句,一共有两种: If 、switch; 循环语句一共有三种,分别是: while、for、do while
一、语句
C语言中的语句--->用分号;隔开的就是一个语句。换句话说,C语言中,每一次语句结束就需要加上一个分号;
1、分支(选择)语句
通常我们学习的 if 语句在只有两个分支,也就是只有两种选择的情况下,常用的语句结构由两种:
(1) if (表达式)
语句;//判断是否满足表达式,如果满足,则执行语句,否则不执行;
(2) if(表达式)
语句1;
else
语句2;//判断是否满足表达式,如果满足,就执行语句1,否则就执行语句2;
另外还有一种用 if 的多分支选择语句,有多种(一般是两种)判断情况,如下所示:
if (表达式1)
语句1;
else if (表达式2)
语句2;
else if(表达式3)
语句3;
else
//程序执行时先判断是否满足表达式1,如果满足,就执行语句1,如果不满足就判断是否满足表达式2,如果满足就执行语句2,如果两个表达式都不满足,就执行语句3
如下例所示:
1、单分支的 if 语句
此时是表达式为真的情况,如果表达式为假,则不执行该语句。
2、双分支的 if 语句
3、多分支的 if 语句
同时在 if 选择语句中,如果条件成立,并且要执行多条语句,就用大括号把这些语句框住,这些语句被统一称呼为代码块。
3、悬空else
类似的两段代码,比较两段代码中 else 的位置不同之处,实际上正确的对齐方式是第二个,也就是说,代码中的else和第二个if对齐,因此,这段代码什么都不执行,如下所示:
这也是C语言中else匹配的原则,else与离他最近的没有匹配的if相互匹配。这样的匹配方式就称为悬空else;
PS:代码在书写的过程中,需要按照一定的规则和格式来写。擅于运用大括号区分代码块。
另外,关于 if 后面的条件判断,也需要注意:如下所示:
这里 if 后面的 (a=1) 是赋值,而不是判断,而根据C语言的规则, if 语句后括号里的只要不为0就是真,就需要执行 if 后的语句,因此可以执行;
4、练习
这里主要是应用到了 取模运算 和 循环语句while ;
5、switch语句的用法
switch语句用于多分支的选择语句,可有简化多分支语句的表述,如果不使用switch而是单纯使用 if 代码就会大大增多,如下:写一段代码,实现输入n,打印星期n的功能;
而switch的语句语法是:
switch(整型表达式){
语句项
} 这些语句项一般是由case语句组成的。代码如下:
需要注意的是,不论是switch后的整型表达式,还是case后的值,都必须是整数;
default语句:当输入的数值不在switch的分支里面,那么就可以走break语句。break语句也有子句,如下
ps:需要注意的是 在switch语句里可以出现 if 语句,毕竟switch只是一个选择分支,在一个分支里面是可以添加 if 进行条件判断的,但是switch语句里面不可以出现 continue 语句
什么是continue语句? continue语句的作用就是跳出本次循环,其作用是仅结束本次循环,但不会使整个循环终止。
关于 嵌套 switch语句的应用和注意:
换句话说,在多个case待执行时。第一个case需要看一下执行条件,如果第一个case后没有break作为中断,那么就直接去执行下一个case
以上为分支语句,接下来是循环语句 :1、while 2、for 3、do while
(1)while循环
我们之前已经掌握了 if 语句,所谓 if 语句,就是 if(判断条件) 如果条件为真,就一直执行 if 下的语句,将 if 换成 while 就是while循环,下面将说明while语句的语法与结构
while (表达式)
循环语句;
意思是:首先判断表达式是否为真,表达式为真则执行循环语句,再执行完循环语句之后,再次判断表达式是否为真。直到发现某次表达式结果为假,则不再执行循环语句。
用while循环打印 1~10
另外,想要打断循环也很简单,直接使用break,一旦有break,则立刻打断循环,break后的循环语句都不执行。
比较 continue和break :continue的作用是“继续”,也就是结束本次当前循环,但不会结束大循环以及后面的循环,break 的作用是后面的循环均不执行。
细说:continue的作用就是本次循环中 continue 后面的语句不执行,直接跳转到 循环的判断,来判断循环是否要继续进行。 而break是用于永久终止循环。



