admin 管理员组

文章数量: 887021


2024年1月28日发(作者:wordpress模板推荐)

c语言struct用法例子

C语言struct用法

什么是struct

• struct是C语言中的一种自定义数据类型,用来封装多个不同类型的变量。

• 它可以将不同类型的变量组合在一起,形成一个新的数据类型。

struct的定义和声明

• 使用struct关键字定义struct类型,如下所示:

struct Person {

char name[20];

int age;

float height;

};

• 上述代码定义了一个名为Person的struct类型,它包含三个成员变量分别是name、age和height。

• 在代码中使用定义好的struct类型时,需要先声明一个变量并指定其类型为所定义的struct类型,如下所示:

struct Person p;

struct的初始化和访问

• 可以使用.操作符访问struct的成员变量,如下所示:

strcpy(, "Alice");

= 20;

= 1.65;

• 上述代码将分别给p的成员变量name、age和height赋值。

示:

struct Person p = {"Alice", 20, 1.65};

• 上述代码将定义一个名为p的Person类型的可以在定义struct变量的同时进行初始化,如下所struct变量,并直接对它进行初始化。

所示:

printf("Name: %sn", );

printf("Age: %dn", );

printf("Height: %.2fn", );

• 上述代码将分别打印出p的成员变量name、age和height的值。

可以通过.操作符访问struct变量的成员变量,如下

struct的嵌套使用

• struct类型可以嵌套在另一个struct类型中,形成更复杂的数据结构。

struct Date {

int year;

int month;

int day;

};

struct Person {

char name[20];

int age;

float height;

struct Date birthday;

};

struct Person p;

• 上述代码定义了一个包含birthday成员变量的Person类型。

• 可以通过.操作符访问嵌套的成员变量,如下所示:

= 2000;

= 1;

= 1;

• 上述代码给p的birthday成员变量的year、month和day赋值。

struct的传递和返回

• 可以将struct作为参数传递给函数,也可以将struct作为函数的返回值。

• 通过传递struct的指针,可以避免拷贝大量数据。

void printPerson(struct Person *p) {

printf("Name: %sn", p->name);

printf("Age: %dn", p->age);

printf("Height: %.2fn", p->height);

}

struct Person createPerson(char *name, int age, float height) {

struct Person p;

strcpy(, name);

= age;

= height;

return p;

}

• 上述代码定义了一个打印Person类型变量信息的函数printPerson和一个创建Person类型变量的函数createPerson。

• 可以通过传递指向struct变量的地址,实现对struct变量的修改。

void modifyPerson(struct Person *p, int age) {

p->age = age;

}

modifyPerson(&p, 21);

• 上述代码将会修改p的age成员变量的值为21。

总结

• struct是C语言中组织数据的一种重要方式,它可以将多个不同类型的变量封装在一起。

• 使用struct可以更好地表达程序中的数据关系,提高代码的可读性和可维护性。

• struct的常见用法包括定义、初始化、访问、嵌套、传递和返回。

struct的定义和声明

• struct是C语言中的一种自定义数据类型,用来封装多个不同类型的变量。

struct Student {

char name[20];

int age;

float score;

};

• 上述代码定义了一个名为Student的struct类型,它包含三个成员变量分别是name、age和score。

• 在代码中使用定义好的struct类型时,需要先声明一个变量并指定其类型为所定义的struct类型。

struct Student stu;

struct的初始化和访问

• 可以使用.操作符访问struct的成员变量。

strcpy(, "Tom");

= 18;

= 95.5;

• 上述代码将分别给stu的成员变量name、age和score赋值。

• 可以在定义struct变量的同时进行初始化。

struct Student stu = {"Tom", 18, 95.5};

• 上述代码将定义一个名为stu的Student类型的struct变量,并直接对它进行初始化。

• 可以通过.操作符访问struct变量的成员变量。

printf("Name: %sn", );

printf("Age: %dn", );

printf("Score: %.2fn", );

• 上述代码将分别打印出stu的成员变量name、age和score的值。

struct的嵌套使用

• struct类型可以嵌套在另一个struct类型中,形成更复杂的数据结构。

struct Date {

int year;

int month;

int day;

};

struct Student {

char name[20];

int age;

float score;

struct Date birthday;

};

struct Student stu;

• 上述代码定义了一个包含birthday成员变量的Student类型。

• 可以通过.操作符访问嵌套的成员变量。

= 2000;

= 1;

= 1;

• 上述代码给stu的birthday成员变量的year、month和day赋值。

struct的传递和返回

• 可以将struct作为参数传递给函数,也可以将struct作为函数的返回值。

• 通过传递struct的指针,可以避免拷贝大量数据。

void printStudent(struct Student *stu) {

printf("Name: %sn", stu->name);

printf("Age: %dn", stu->age);

printf("Score: %.2fn", stu->score);

}

struct Student createStudent(char *name, int age, float

score) {

struct Student stu;

strcpy(, name);

= age;

= score;

return stu;

}

• 上述代码定义了一个打印Student类型变量信息的函数printStudent和一个创建Student类型变量的函数createStudent。

• 可以通过传递指向struct变量的地址,实现对struct变量的修改。

void modifyStudent(struct Student *stu, float score) {

stu->score = score;

}

modifyStudent(&stu, 98.5);

• 上述代码将会修改stu的score成员变量的值为98.5。

总结

• struct是C语言中组织数据的一种重要方式,它可以将多个不同类型的变量封装在一起。

• 使用struct可以更好地表达程序中的数据关系,提高代码的可读性和可维护性。

• struct的常见用法包括定义、初始化、访问、嵌套、传递和返回。


本文标签: 变量 类型 定义 代码 成员