首页 > 编程语言 >2023-2024-1 20231306 《计算机基础与程序设计》第十三周学习总结

2023-2024-1 20231306 《计算机基础与程序设计》第十三周学习总结

时间:2023-12-24 21:11:50浏览次数:36  
标签:400 成员 Address 20231306 2024 person1 2023 共用 结构

作业信息

这个作业属于哪个课程 2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2023-2024-1计算机基础与程序设计第一周作业
这个作业的目标
作业正文 https://www.cnblogs.com/zwywuhu/p/17924830.html

教材学习内容总结

《c语言程序设计》第12章——结构体和数据结构基础

  1. 结构体——允许用户自定义数据类型,与此相似的还有:链表、树、堆栈等数据对象。

  2. 结构体与共用体

  • 结构体:
    定义: 结构体是一种用户自定义的数据类型,允许你将不同类型的数据组织在一个单一的实体中。它允许你创建一个包含多个成员的数据结构。
    在C语言中,结构体的定义通常如下:

struct MyStruct {
type1 member1;
type2 member2;
// ...
};

  • 共用体:
    用体是一种特殊的数据类型,允许你在相同的内存空间中存储不同的数据类型。共用体的所有成员共享同一块内存,但每次只能使用其中一个成员。
    在C语言中,共用体的定义通常如下:

union MyUnion {
type1 member1;
type2 member2;
// ...
};

两者对比:

(1)内存分配方式:
结构体: 结构体的各个成员在内存中是依次排列的,每个成员都有自己的内存空间。
共用体: 共用体的所有成员共享同一块内存空间,它们的起始地址是相同的,这意味着共用体的大小取决于其最大的成员。
(2) 成员访问:
结构体: 结构体的不同成员可以同时被访问和操作,互不影响。
共用体: 只能同时访问一个成员,因为它们共享内存,修改一个成员可能会影响其他成员的值。
(3)使用场景:
结构体: 适合用于组织不同类型的数据,每个成员存储不同种类的信息。
共用体: 适合在同一块内存中存储不同类型的数据,但每次只使用其中一种类型的情况。通常用于节省内存空间。
(4)内存占用:
结构体: 占用的内存空间等于各个成员的大小之和。
共用体: 占用的内存空间等于最大成员的大小。
(5)修改数据的影响:
结构体: 修改结构体的一个成员不会影响其他成员。
共用体: 修改一个成员会影响共用体中的其他成员,因为它们共享同一块内存。
(6)应用领域:
结构体: 用于表示和组织复杂的数据结构,例如表示一个点、人物信息等。
共用体: 用于需要在不同类型数据之间切换的情况,例如在某个时刻存储整数,另一个时刻存储浮点数。

3.用typedef定义数据类型

  • 使用方法举例
    typedef int INT; // 将 int 定义为 INT,现在 INT 可以用来声明变量
    typedef struct {
    int x;
    int y;
    } Point; // 定义结构体别名 Point
    int main() {
    INT a = 5;

    Point p1;
    p1.x = 3;
    p1.y = 7;

    return 0;
    }

  • 注:typedef只是为一种已存在的类型定义一个新名字而已,并未定义一种新的数据类型。

4.嵌套结构体

(1)在一个结构体内包含了另一个结构体作为其成员。例如:

include <stdio.h>

// 定义 Address 结构体
struct Address {
char street[50];
char city[50];
char state[20];
char zipCode[10];
};

// 定义 Person 结构体,其中包含一个 Address 结构体
struct Person {
char firstName[30];
char lastName[30];
int age;
struct Address homeAddress; // 嵌套的 Address 结构体
};

int main() {
// 创建一个 Person 结构体实例
struct Person person1 = {
"John",
"Doe",
30,
{"123 Main St", "Anytown", "CA", "12345"} // 初始化嵌套的 Address 结构体
};

// 访问 Person 结构体的成员
printf("Name: %s %s\n", person1.firstName, person1.lastName);
printf("Age: %d\n", person1.age);

// 访问嵌套的 Address 结构体的成员
printf("Address: %s, %s, %s %s\n",
person1.homeAddress.street,
person1.homeAddress.city,
person1.homeAddress.state,
person1.homeAddress.zipCode);

return 0;
}

5.结构体变量的引用

  • 不能将一个结构体变量作为一个整体进行输入、输出操作,只能对每个具体成员进行输入、输出操作。
  • 并非所有的结构体成员进行赋值时,必须使用字符串处理函数strcpy()。
  • 全局声明:在函数体外声明对结构体类型可为所有函数使用。
  • 局部声明:在函数体内声明的结构体类型只能在本函数内使用,离开该函数,声明失效。

6.结构体指针

  • 例:STUDENT *pt = &stu1;
  • 指向结构体的指针变量变量名->成员名
  1. 向函数传递结构体
    (1) 用结构体的单个成员作为函数参数,向函数传递结构体的单个成员。
    (2)用结构体变量作函数参数,向函数传递结构体的完整结构。
    (3)用结构体指针或结构体数组作函数参数,向函数传递结构体的地址。

基于AI的学习

代码调试中的问题和解决过程

问题一:在进行openssl实践中,遇到的问题,如图:

问题一解决过程:经过询问chatgpt,结果如下:

问题二和问题二解决过程:
如图:

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
------- -------- -----
第二周 200/400 2/4
第三周 200/600 3/7
第四周 100/700 2/9
第五周 200/900 1/ 10
第六周 300/1200 1/11
第七周 400/1600 1/12
第八周 500/2100 1/13
第九周 500/2600 3/16
第十周 400/3000 1/17
第十一周 400/3400 1/18
第十二周 400/3800 2/20
第十三周 400/4200 6/26

标签:400,成员,Address,20231306,2024,person1,2023,共用,结构
From: https://www.cnblogs.com/zwywuhu/p/17924830.html

相关文章

  • 2023.12.24——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.软件案例分析明日计划:学习......
  • 2023-2024-1 20231312 《计算机基础与程序设计》第13周学习总结
    作业信息这个作业属于哪个课程<班级的链接>2023-2024-1-计算机基础与程序设计|-这个作业要求在哪里<作业要求链接>2023-2024-1计算机基础与程序设计第6周作业|这个作业的目标《C语言程序设计》第12章|作业正文作业链接教材学习内容总结《C》结构体的......
  • 行业名词 - 20231224
     名词简写名词概述名词解释所属行业RPCremoteproceducecall远程通信回调技术-协议gRPCgoogleremoteproceducecallgoogle远程通信回调技术-协议ACLaccesscontrollist访问控制列表              ......
  • 2023-2024-1 20231323《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231323《计算机基础与程序设计》第十三周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第十三周作业作业目标自学教材《C语言程序设计》第12章并完成云班课测试作业正文本博客链接教......
  • 学期2023-2024-1 20231409 《计算机基础与程序设计》第十三周学习总结
    学期2023-2024-120231409《计算机基础与程序设计》第十三周学习总结这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标自学《C语言程序设计》第十二章并完成云班课测试作业正......
  • 2023-2024-1 20231301 《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231301《计算机基础与程序设计》第十三周学习总结作业信息作业链接作业课程<班级>(2023-2024-1-计算机基础与程序设计)作业要求<作业>(2023-2024-1计算机基础与程序设计第十三周学习总结)作业目标<《C语言程序设计》预习第十二章>《C语言程序设......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第13周学习总结
    ###目录*作业信息*教材学习内容总结1.《c语言程序设计》第12章*基于AI的学习*上周错题*学习进度条作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《C语言程序设计》第12章并完成云班课测试。作业正文......
  • USACO 2023 Pt T2
    有趣的小清新数据结构题。首先考虑这个合并每次找到最小的边的过程很类似于Kruskal最小生成树的合并过程,只不过每次是钦定了合并一个大联通块和一个点。由于需要从不同的起点开始考虑,也就是需要多次处理这个类似Kruskal的过程,自然想到Kruskal重构树。我们考虑建出Kruskal......
  • 2023-2024-1 学号20231324《计算机基础与程序设计》第十三周学习总结
    2023-2024-1学号20231324《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标《C语言程序设计》第12章并完成云班课测......
  • 2023-2024-1 学号:20231305 《计算机基础与程序设计》第13周学习总结
    2023-2024-1学号:20231305《计算机基础与程序设计》第13周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<自学教材《C......