下面是“详解C语言结构体的定义和使用”的完整攻略。
1. 什么是C语言结构体?
C语言结构体(Struct)是一种用户自定义的数据类型,它是由一组不同数据类型的变量组成的集合。结构体中的每个变量叫做成员,这些成员可以是不同数据类型的基本数据类型,也可以是其他结构体类型。
结构体在C语言中使用非常广泛,尤其是在面向对象程序设计中,结构体是模拟类的重要手段。
2. 如何定义C语言结构体?
C语言通过关键字struct来定义结构体,格式如下:
struct 结构体名 {
数据类型 成员1;
数据类型 成员2;
...
};
其中,结构体名必须符合C语言的命名规则,成员名可以使用任何有效的标识符。
例如,我们定义一个结构体来表示一本书的信息,包括书名、作者和价格,代码如下:
struct book {
char title[50];
char author[20];
float price;
};
这样,我们就定义了一个名为book的结构体类型,包含三个成员,分别是title、author和price。
3. 如何使用C语言结构体?
定义结构体仅仅是定义了一种新的数据类型,我们需要创建结构体的实例来使用它。
定义结构体实例的方式有两种,一种方式是在定义结构体时同时定义结构体实例:
struct book {
char title[50];
char author[20];
float price;
} mybook;
这样,我们就定义了一个名为mybook的结构体实例。可以通过以下方式初始化结构体实例:
struct book mybook = {"C语言程序设计", "谭浩强", 49.9};
另一种方式是先定义结构体类型,再定义结构体实例:
struct book {
char title[50];
char author[20];
float price;
};
struct book mybook = {"C语言程序设计", "谭浩强", 49.9};
无论用哪种方式,我们都可以通过结构体实例来访问结构体的成员。其中,访问成员的方式为“结构体名.成员名”,例如:
printf("书名:%s,作者:%s,价格:%.2f元", mybook.title, mybook.author, mybook.price);
这样,就可以输出mybook这本书的信息了。
4. 示例说明
下面,我们通过两个示例来说明结构体的定义和使用。
示例一:定义一个人的信息并输出
#include <stdio.h>
#include <string.h>
struct person {
char name[20];
int age;
char address[50];
};
int main() {
struct person p = {"张三", 18, "北京市朝阳区"};
printf("姓名:%s,年龄:%d,家庭住址:%s\n", p.name, p.age, p.address);
strcpy(p.name, "李四");
p.age = 22;
strcpy(p.address, "天津市南开区");
printf("姓名:%s,年龄:%d,家庭住址:%s\n", p.name, p.age, p.address);
return 0;
}
运行结果如下:
姓名:张三,年龄:18,家庭住址:北京市朝阳区
姓名:李四,年龄:22,家庭住址:天津市南开区
该示例定义了一个结构体person来存储一个人的信息,然后定义了结构体实例p,并用初始化的方式为p赋值。最后输出p的信息,然后修改p的信息,再次输出p的信息。从输出结果可以看出,p的信息已经被修改。
示例二:定义一个学生信息数组并输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
char name[20];
int age;
char gender;
float score;
};
int main() {
struct student s[3] = {
{"张三", 18, 'M', 89.5},
{"李四", 19, 'F', 92.5},
{"王五", 20, 'M', 85.0}
};
int i;
for (i = 0; i < 3; i++) {
printf("姓名:%s,年龄:%d,性别:%c,成绩:%.2f\n", s[i].name, s[i].age, s[i].gender, s[i].score);
}
return 0;
}
运行结果如下:
姓名:张三,年龄:18,性别:M,成绩:89.50
姓名:李四,年龄:19,性别:F,成绩:92.50
姓名:王五,年龄:20,性别:M,成绩:85.00
该示例定义了一个结构体student来存储学生的信息,然后定义了一个包含3个元素的结构体数组s,并用初始化的方式为它赋值。最后使用for循环输出学生的信息。从输出结果可以看出,结构体数组中每个元素都包含一个学生的信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C语言结构体的定义和使用 - Python技术站