点击上方"蓝字"关注我们
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。