结构体的定义和基本用法
结构体是一种自定义的数据类型,可以包含多个不同的数据类型作为其成员。类似于数组,结构体的成员可以通过其名称来访问。以下是一个结构体的定义和基本用法的示例:
struct student { int id; char name[20]; float gpa; }; // 创建一个结构体变量并初始化其成员 struct student s = {1, "tom", 3.6}; // 访问结构体成员 printf("id: %d, name: %s, gpa: %.2f", s.id, s.name, s.gpa);
在定义结构体时,需要指定其名称及其成员。在上面的示例中,使用了一个名为"student"的结构体,其包含了三个不同类型的成员,分别是一个整数类型的"id"、一个字符数组类型的"name"和一个浮点数类型的"gpa"。在创建结构体变量时,也可以直接对其成员进行初始化。如果要访问结构体成员,只需使用"."操作符即可。
结构体的嵌套和指针
结构体还可以嵌套使用。在结构体内部可以定义另一个结构体作为其成员。以下是一个结构体的嵌套和指针示例:
struct address { char street[50]; char city[20]; char state[10]; int zip; }; struct person { char name[20]; int age; struct address *addr; }; // 创建一个结构体变量并初始化其成员 struct address a = {"123 main st", "anytown", "ca", 12345}; struct person p = {"tom", 30, &a}; // 访问嵌套结构体成员 printf("name: %s, age: %d, street: %s, city: %s, state: %s, zip: %d", p.name, p.age, p.addr->street, p.addr->city, p.addr->state, p.addr->zip);
在上面的示例中,定义了两个结构体,分别是"address"和"person"。在"person"结构体内部,使用了一个指向"address"结构体的指针来表示其地址信息。在创建"person"结构体变量时,需要指定其成员的值,其中"addr"成员使用了"&"操作符来获取"address"结构体的地址。在访问嵌套结构体的成员时,需要使用"->"操作符来访问。
结构体数组的应用
结构体也可以定义为数组类型,在实际开发中应用广泛。以下是一个结构体数组的应用示例:
struct book { char title[50]; char author[20]; float price; }; // 创建一个结构体数组并初始化其成员 struct book books[3] = {{"c programming", "dennis ritchie", 29.99}, {"java programming", "james gosling", 39.99}, {"python programming", "guido van rossum", 19.99}}; // 遍历结构体数组并输出其成员 int i; for (i = 0; i < 3; i ) { printf("title: %s, author: %s, price: %.2fn", books[i].title, books[i].author, books[i].price); }
在上面的示例中,定义了一个"book"结构体,并创建了一个包含三个"book"结构体的数组。在初始化结构体数组时,可以按其成员的顺序依次指定其值。在遍历结构体数组时,可以使用"for"循环对其成员进行输出,也可以使用指针来访问结构体数组的成员进行修改等操作。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cppcjj3.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及捕鱼10元起上10元下的版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的捕鱼10元起上10元下的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!