C结构

C结构简介

使用struct关键字我们可以使用基本的C类型创建复杂的数据结构。

结构是不同类型的值的集合。数组C语言中的C语言仅限于一种类型,因此在许多用例中,结构都可以证明是非常有趣的。

这是结构的语法:

struct <structname> {
  //...variables
};

例子:

struct person {
  int age;
  char *name;
};

您可以通过在大括号后,分号之前添加变量来声明具有该结构类型的变量,如下所示:

struct person {
  int age;
  char *name;
} flavio;

或多个,如下所示:

struct person {
  int age;
  char *name;
} flavio, people[20];

在这种情况下,我声明一个person变量名为flavio,以及20个数组person命名people

我们也可以稍后使用以下语法声明变量:

struct person {
  int age;
  char *name;
};

struct person flavio;

我们可以在声明时初始化一个结构:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

一旦定义了结构,就可以使用点访问其中的值:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” }; printf("%s, age %u", flavio.name, flavio.age);

我们还可以使用点语法更改值:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

flavio.age = 38;

结构非常有用,因为我们可以将它们作为函数参数传递或返回值,将各种变量嵌入其中,并且每个变量都有一个标签。

重要的是要注意结构是通过副本传递,除非您当然通过了指针到一个结构,在这种情况下,它通过引用传递。

使用typedef我们可以在处理结构时简化代码。

让我们举个例子:

typedef struct {
  int age;
  char *name;
} PERSON;

我们使用创建的结构typedef按照惯例,通常是大写的。

现在我们可以声明新的PERSON像这样的变量:

PERSON flavio;

我们可以通过以下方式在声明时初始化它们:

PERSON flavio = { 37, "Flavio" };

免费下载我的C手册


更多clang教程: