C语言概述三

文章详细介绍了C语言中结构体的概念,用于描述复杂对象如一个人或一本书的信息。结构体通过struct关键字定义,成员通过.或->访问。同时,文章讨论了static关键字的作用,包括修饰局部变量、全局变量和函数,改变它们的作用域和生命周期。此外,还提到了选择分支结构,如if和switch,并对比了continue和break的区别。
摘要由CSDN通过智能技术生成

初识结构体struct 

描述复杂对象,比如描述一个人 、一本书不是能用一种信息描述出来,那描述复杂对象,C语言中中引入结构体来描述复杂对象,结构体里面可以包含多个信息。struct是结构体关键字,比如struct book创建了一个类型为book的结构体;那如何描述book这个结构体?

 这样描述自定义结构体,这个;号不可以省略。

因为对于结构体来说这是声明一个自定义结构体,所以这里需要加;如果是自定义函数那对于函数来说就是定义不是声明不需要加;

那结构体这个类型怎么用?

这里的结构体访问成员操作符是.

 还有另外一种方法, 蓝色区域指针。

 这里 ->也是结构体成员访问符。意思是pb既然是个指针,它->那个对象的名字。

在这额外补充一句,如果字符串已经初始化,那便不可以更改,但是变量可以修改。需要重新拷贝,看图一;  重新拷贝看图2

图一

图二

c语言中,大概把内存划分为三个区域分别为:栈区 堆区 静态区

 关于static函数

static修饰局部变量、全局变量、和函数

static修饰局部变量:首先我们要知道局部变量是放在栈区,如果被static修饰就存储到静态区了,修饰局部变量改变了变量的存储位置,出作用域不销毁,使得这个静态变量的声明周期变长,程序结束,静态变量才销毁但需要注意的是static 修饰的局部变量还是只能在自己的作用域内使用,出了自己作用域其他地方就没法使用。

static修饰全局变量:全局变量具有外部链接属性,如果你想在其他源文件内部使用这个全局变量,只需要extern 类型 变量名;就可以使用。 static修饰全局变量,改变了全局变量的连接属性,由外部链接属性变为内部链接属性,只能在staitc修饰的源文件内使用,其他源文件内不可以使用;感觉像作用域变小了,但不影响存储位置,还是在静态区,限制了适用范围.

static修饰函数:extern add(int ,int );这就是extern的函数声明,

如果static修饰add这个函数则会报错,错误信息是无法解析的外部命令,其实是add函数不存在,

为什么,因为函数本身是具有外部链接属性,但是被static修饰就会变成内部链接属性,使得这个函数只能在自己所在的源文件内部使用,不能在其他文件内部使用

选择分支结构

选择分支结构分为   if选择分支结构,也称为if判断语句,如果if后面括号中表达式为真,则执行if{}中的语句,如果表达式为假,则不执行。else没有表达式,if括号的表达式判断为假,直接进入else 执行else里的内容,

                              switch多分支结构(类似汉语开关的意思)

switch(表达式)  :这里表达式类似于一堆开关,选择几,就从下面的分支几进去。比如int a=1;switch(a)其实就是从case 1分支进入,如果从case 1语句中进入没有遇到continue 或者break,则会把所有分支都执行完,但countinue不可以直接用于switch语句,必须要在switch外加上循环才可以使用.

{

case 1: 表示分支1

case 2:表示分支2

default :表示其他分支

}

这里需要注意的是case空格在+常量在输入:

case c不可以,c是变量。

continue跟break区别:

break是直接结束循环。而continue是结束continue后面的代码,直接去判断部分,看是否进入进行下一次循环.

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值