| |
|
开发:
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语言笔记初级篇】第七章:结构体相关 |
目录 (1)结构体的声明,定义,初始化和成员访问A:什么是结构体世界上物体的性质是复杂多样的,就拿人而言,人绝对不能用一个整形数据(比如说身高),或者说字符串(比如说姓名)而单独囊括的,于是我们在描述一个复杂对象的时候,就要使用的结构体,结构体是一些值的集合,这些值称为成员变量,每个成员变量可以是不同的类型 B:结构体声明和定义比如这里我们要描述一个学生,一个学生的信息主要包括姓名,年龄和学号组成 上述我们在main函数中通过,定义的struct Student 创建了一个结构体变量S,这样的创建方式属于局部变量 我们还可以直接在参数列表处直接定义,这样定义的就是全局变量 还有我们经常在数据结构中见到的一种写法,它其实相等于就是重新命了一个名字 C:结构体的初始化第一点:普通初始化 第二点:嵌套初始化 结构体的成员可以是标量,数组,指针,甚至是其他结构体 D:成员访问上述循环嵌套的访问方式如下 (2)结构体传参结构体不能直接使用printf函数打印,需要打印时可以自己封装print函数,而这就涉及到了传参和传递地址的问题,结合前面第五章讲到的结构体指针的相关知识,就有以下两种打印方式 由于结构体的数据比较多,所以我们以后在操作时要传结构体的地址,如果传结构体的值那么对于内存的开销就比较大,如果传入地址,则只需使用一个很小的指针就能操作 (3)结构体自引用这里以单链表结点定义为例。一个结构体有两个部分,一个部分是数据域,一个部分是指针域,在创造结点也就是建立结构体成员时,每个成员除了有一个数据域用来存放数据外还有一个指针域,在指针域里面存放的是一个地址,这个地址指向下一个结点也就是下一个结构体成员的内存地址 (4)内存对齐(5)结构体传参和前面说过的交换两个变量的经典例子一样,对结构体内的变量进行修改时需要传入地址,用结构体指针来接受,如果只是去使用结构体变量的值的话,就只传入值即可 (6)位段具体参见 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 14:27:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |