点击上方"蓝字"关注我们
01、创建结构体
struct MyStructure { // 结构声明int myNum; // 成员(int 变量)char myLetter; // 成员(char 变量)}; // 用分号结束结构创建一个名为 s1 的结构变量struct myStructure {int myNum;char myLetter;};int main() {struct myStructure s1;return 0;}
02、结构体中的字符串
struct myStructure {int myNum;char myLetter;char myString[30]; // String};int main() {struct myStructure s1;strcpy(s1.myString, "Some text");// 打印值printf("我字符串: %s", s1.myString);return 0;}使用 strcpy 函数为字符串赋值
03、访问结构体成员
// 创建一个名为 myStructure 的结构struct myStructure {int myNum;char myLetter;};int main() {// 创建一个名为 s1 的 myStructure 结构变量struct myStructure s1;// 为 s1 的成员赋值s1.myNum = 13;s1.myLetter = 'B';// 创建一个名为 s2 的 myStructure 结构变量// 并为其赋值struct myStructure s2 = {13, 'B'};// 打印值printf("My number: %d\n", s1.myNum);printf("My letter: %c\n", s1.myLetter);return 0;}创建不同的结构变量struct myStructure s1;struct myStructure s2;// 为不同的结构变量赋值s1.myNum = 13;s1.myLetter = 'B';s2.myNum = 20;s2.myLetter = 'C';
04、复制结构体
struct myStructure s1 = {13, 'B', "Some text"};struct myStructure s2;s2 = s1;示例中,将 s1 的值复制到 s2
05、修改结构体值
// 创建一个结构变量并为其赋值struct myStructure s1 = {13, 'B'};// 修改值s1.myNum = 30;s1.myLetter = 'C';// 打印值printf("%d %c %s",s1.myNum,s1.myLetter);
总结
上节回顾
| 入门C语言只需一个星期(星期五) |
C语言中的结构体(struct)是一种用户自定义的数据类型,可以用来组织一组相关的数据成员。结构体的常见用法包括:
1. 封装数据:结构体可以用来封装相关联的数据成员,使得数据的表示更加清晰和易于理解。例如,可以定义一个学生结构体,包含学号、姓名、年龄等成员。
2. 实现数据共享:当多个函数或模块需要访问相同的数据时,可以使用结构体来实现数据共享。这样可以避免数据重复定义,提高代码的可维护性。
3. 传递数据:结构体可以作为函数参数或返回值,实现数据的传递。例如,可以将学生的信息作为参数传递给一个函数,或者在函数中创建一个新的学生结构体并返回。
4. 数组和链表:结构体可以用于构建数组和链表等数据结构。例如,可以定义一个节点结构体,包含数据和指向下一个节点的指针,然后使用这些节点来构建链表。
5. 面向对象编程:虽然C语言不是面向对象的语言,但结构体可以用来模拟面向对象编程中的类和对象的概念。例如,可以定义一个动物结构体,包含动物的属性和方法,然后使用不同的动物结构体实例来表示不同的动物。
结构体的好处主要有以下几点:
1. 封装性:结构体可以将一组相关的数据成员封装在一起,对外提供统一的接口,隐藏内部实现细节。这有助于提高代码的可读性和可维护性。
2. 复用性:结构体可以包含多个数据成员,这些数据成员可以是不同类型的数据。通过定义不同的结构体类型,可以实现代码的复用,减少代码量。
3. 灵活性:结构体可以包含任意数量的数据成员,成员的类型也可以不同。这使得结构体具有很高的灵活性,可以适应各种不同的应用场景。
4. 数据共享:当多个函数或模块需要访问相同的数据时,可以使用结构体来实现数据共享。这样可以避免数据重复定义,提高代码的可维护性。
5. 数组和链表:结构体可以用于构建数组和链表等数据结构。例如,可以定义一个节点结构体,包含数据和指向下一个节点的指针,然后使用这些节点来构建链表。
6. 面向对象编程:虽然C语言不是面向对象的语言,但结构体可以用来模拟面向对象编程中的类和对象的概念。例如,可以定义一个动物结构体,包含动物的属性和方法,然后使用不同的动物结构体实例来表示不同的动物。
故我在
点击下方卡片 关注我
↓↓↓

Qt历险记
一名技术分享师,分享方向:->Qt(C/C++、linux、STM32、MySql/Sqlite3、TCP/UDP),设计方面->Ai、PS、visio、AD、Protues。


















