在C语言中,结构体是一种自定义的数据类型,它可以把多个不同类型的数据组合在一起,形成一个新的数据类型。结构体由一组成员变量组成,可以定义在函数内或外。以下是C语言结构体相关知识:

1. 结构体定义:结构体的定义使用关键字struct,结构体由一组成员变量组成,每个成员变量可以是任何类型的数据。结构体定义的一般格式为:

````
    struct 结构体名称 {
        成员变量1;
        成员变量2;
        ...
    };
    ```

2. 结构体变量:结构体定义后,可以通过变量来创建结构体对象。结构体变量的定义格式为:

````
    struct 结构体名称 变量名称;
    ```

   可以通过"."运算符来访问结构体变量的成员变量,例如,变量名称.成员变量名称。

3. 结构体初始化:可以使用花括号{}来初始化结构体变量,例如:

````
    struct Student {
        char name[20];
        int age;
        float score;
    };
    
   struct Student stu = {"张三", 18, 90.5};
    ```

4. 结构体指针:结构体变量可以通过指针来访问和修改。结构体指针的定义格式为:

````
    struct 结构体名称 *指针名称;
    ```

   可以通过"*"运算符来访问结构体指针所指向的结构体变量的成员变量,例如,指针名称->成员变量名称。

5. 结构体嵌套:结构体可以嵌套定义,即结构体中可以包含另一个结构体的成员变量。例如:

````
    struct Address {
        char city[20];
        char street[20];
    };
    
    struct Student {
        char name[20];
        int age;
        float score;
        struct Address addr;
    };
    ```

6. 结构体作为函数参数:结构体可以作为函数的参数和返回值。可以通过结构体指针或者结构体变量来传递结构体参数。在函数调用中,结构体参数的传递是按值传递,即传递的是结构体变量的副本。

总之,以上是C语言结构体相关知识。结构体是一个非常重要的数据类型,在程序设计中具有很大的灵活性和扩展性。掌握了结构体的相关知识,可以帮助开发者设计复杂的数据类型,提高程序的可读性和可维护性。