| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> C语言,结构体 -> 正文阅读 |
|
[数据结构与算法]C语言,结构体 |
一月二十七日记录。 先前所介绍的都是基本类型,如int,还有构造类型,如数组。 但是在某些情况下,基本类型不能满足我们的需求。此时,我们可以将一些有关的变量组织起来,并定义成一个结构,以此来表示一个有机的整体或一种新的类型。然后程序就可以像处理内部的基本数据那样,对结构进行操作。 结构体类型的概念与声明 结构体是一种构造类型,它是由若干成员组成的。这些成员可以是一个基本数据类型,如char,也可以是一个构造类型,如数组。 正如结构体的类型一样,在使用它之前我们需要对其进行构造,这个操作称为声明一个结构体。
关键字struct表示声明结构,其后的结构体名代表该结构的类型名,大括号中的变量构成结构的成员。 结构体变量的定义 关键字struct构造了一个新的类型结构,然后我们要使用这个结构,这时候就要定义变量。 定义结构体变量的方式有三种:
需要注意的是: 1、结构体的类型与变量是两个概念。变量可以赋值,类型不行。如:可以用int类型定义一个a变量,然后对a赋值,但是不可以对int赋值。在编译时,对类型不分配内存空间,只对变量分配内存空间。 2、结构体成员也可以是结构体类型的变量。(嵌套) 3、使用第一个方式定义变量时,定义时的struct可省略不写。
上述代码先声明了一个Project和Project_v的结构体类型,并定义了一个结构体变量Final。然后在第二个结构体类型中有一个成员是第一个结构体类型。 结构体变量的引用 当我们定义一个结构体变量后,就可以对其进行引用。但我们不能针对一个结构体的整体进行操作,而应该是针对其成员进行操作。 引用的时候我们使用了结构体变量名后加上一个成员运算符“ . ”和成员名字,然后就能对该结构体中的该成员进行操作。
如果结构体的成员也属于一个结构体类型,在引用时就要使用若干个成员运算符,一级一级地找到最低一级的成员,并且我们只能对最低级的成员进行操作。
注意:成员运算符的优先级最高。 当我们需要使用引用地址时,结构体变量和结构体成员的地址都可以进行引用。
结构体的初始化 结构体类型与其他基本类型一样,可以在定义结构体变量时指定初始值。
这样就可以快速初始化一个结构体变量。 结构体数组 定义一个结构体数组的方式与定义结构体变量的方式相同,只是结构体变量换成数组而已。
结构体数组的初始化 类比于“结构体的初始化”。
结构体指针 一个指向变量的指针表示的是该变量所占内存的起始地址。如果一个指针指向结构体变量,那么该指针指向的就是该结构体变量的起始地址。同样,结构体指针变量也可以指向结构体数组中的元素。
在引用时需要加括号,否则会先计算点运算符后计算“ * ”,因为成员运算符优先级特别高。
指针引用结构体变量成员也可以用指向运算符"->"
综上:在引用结构体变量的成员时,我们有三种方式:
指向结构体数组的指针 使用时并无大异。
结构体作为函数参数 函数是由参数的,可以将结构体变量的值作为一个函数的参数。 使用结构体作为函数的参数有三种方式: 1、使用结构体变量作为函数参数 2、使用指向结构体变量的指针作为函数参数 3、使用结构体变量的成员作为函数参数 todo |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:43:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |