C语言结构体(一篇学会)

C语言结构体

在C语言中,结构体是一种自定义的数据类型,它允许用户将不同类型的数据组合在一起。结构体由多个变量组成,这些变量称为结构体的成员。结构体成员可以是不同的数据类型,如整数、浮点数、字符或其他结构体等。

结构体的定义格式如下:

struct [structure tag] {
   member definition;
   member definition;
   ...
   member definition;
} [one or more structure variables];

其中,structure tag是结构体类型的名称,member definition定义了结构体的成员,structure variables是一个或多个结构体变量的名称。

例如,下面是一个结构体的定义:

struct person {
   char name[50];
   int age;
   float salary;
};

这个结构体包含三个成员:nameagesalary,分别是字符数组、整数和浮点数类型。

我们可以使用以下语法创建结构体变量:

struct person p1, p2;

这将创建两个名为p1p2person类型的结构体变量。

我们可以使用以下语法访问结构体变量的成员:

p1.name;
p1.age;
p1.salary;

这将分别返回p1结构体变量的nameagesalary成员的值。

结构体在C语言中非常有用,它允许用户创建自定义数据类型,更好地组织和管理数据。

我们可以使用以下语法创建结构体变量,并对其进行初始化:

struct person p1 = {"John Doe", 30, 5000.0};
struct person p2 = {"Jane Smith", 25, 6000.0};

这将分别创建两个名为p1p2person类型的结构体变量,并将它们的成员初始化为指定的值。

访问结构体变量,并赋值

下面是一个例子,我们创建了一个person类型的结构体变量p1,并给它的成员赋值,然后通过访问结构体变量成员的方式获取其值:

#include <stdio.h>
#include <string.h>

struct person {
    char name[50];
    int age;
    float salary;
};

int main() {
    struct person p1;
    strcpy(p1.name, "John Doe");
    p1.age = 30;
    p1.salary = 5000.0;
    printf("Name: %s\\n", p1.name);
    printf("Age: %d\\n", p1.age);
    printf("Salary: %f\\n", p1.salary);
    return 0;
}

输出结果为:

Name: John Doe
Age: 30
Salary: 5000.000000

在上面的例子中,我们首先定义了一个person类型的结构体变量p1,然后分别给它的成员nameagesalary赋值。最后,我们使用printf()函数输出结构体变量成员的值。

结构体作为函数参数

结构体可以作为函数参数,以便在函数中操作和修改结构体的值。以下是一个简单的例子,其中定义了一个printPerson()函数,该函数接受一个person类型的结构体变量作为参数,并打印该变量的成员值:

#include <stdio.h>
#include <string.h>

struct person {
    char name[50];
    int age;
    float salary;
};

void printPerson(struct person p) {
    printf("Name: %s\\n", p.name);
    printf("Age: %d\\n", p.age);
    printf("Salary: %f\\n", p.salary);
}

int main() {
    struct person p1;
    strcpy(p1.name, "John Doe");
    p1.age = 30;
    p1.salary = 5000.0;
    printPerson(p1);
    return 0;
}

输出结果为:

Name: John Doe
Age: 30
Salary: 5000.000000

在上面的例子中,我们定义了一个printPerson()函数,该函数接受一个person类型的结构体变量作为参数,并使用printf()函数打印该变量的成员值。在main()函数中,我们首先定义了一个person类型的结构体变量p1,然后给它的成员nameagesalary赋值。最后,我们调用printPerson()函数并将p1作为参数传递给它,该函数打印p1的成员值。

指向结构体的指针

我们可以使用指向结构体的指针来访问结构体变量的成员。以下是一个例子,我们定义了一个指向person类型结构体的指针,然后使用指针访问结构体变量成员的方式获取其值:

#include <stdio.h>
#include <string.h>

struct person {
    char name[50];
    int age;
    float salary;
};

int main() {
    struct person p1;
    struct person *ptr;

    ptr = &p1;

    strcpy(p1.name, "John Doe");
    p1.age = 30;
    p1.salary = 5000.0;

    printf("Name: %s\\n", ptr->name);
    printf("Age: %d\\n", ptr->age);
    printf("Salary: %f\\n", ptr->salary);

    return 0;
}

输出结果为:

Name: John Doe
Age: 30
Salary: 5000.000000

在上面的例子中,我们首先定义了一个person类型的结构体变量p1和一个指向person类型结构体的指针ptr。然后,我们使用&运算符将p1的地址赋给ptr。我们可以使用ptr->nameptr->ageptr->salary的方式访问p1结构体变量的成员,它们的效果与(*ptr).name(*ptr).age(*ptr).salary相同。最后,我们使用printf()函数输出结构体变量成员的值。

猜你喜欢

转载自blog.csdn.net/weixin_51624736/article/details/129493185
今日推荐