当前位置 : 主页 > 编程语言 > c语言 >

结构体的定义和初始化

来源:互联网 收集:自由互联 发布时间:2023-08-25
一.结构体类型的声明 struct tag(结构体标签)//无标签时为匿名结构,只能用一次{ 成员;}结构体变量;(此处结构体变量可省略,但注意要有;) 二.结构体变量的定义 //定义方式1 变量名紧

一.结构体类型的声明

struct tag(结构体标签)//无标签时为匿名结构,只能用一次
{
   成员;
}结构体变量;(此处结构体变量可省略,但注意要有;)

二.结构体变量的定义

//定义方式1 变量名紧跟类型
struct node
{
    int x;
    char name[10];
}p1;


//定义方式2 先写类型 再进行定义
struct Stu
{
    int x;
    char name[10]
};
struct Stu s;

注意:以上方式定义的结构体不在主函数main内,均为全局变量,若在主函数main内定义则为局部变量。

三.结构的自引用——可实现链表功能

//结构的自引用  实现链表功能
typedef struct Node//使用typedef后,定义结构体变量时,Node p1  等同于  struct Node p1
{
    int data;
    struct Node* next;
};

四.结构体的初始化

1.结构体的初始化

#include <stdio.h>

struct Stu
{
    int x;
    char name[10];
    int y;
};
int main()
{
    struct Stu s = { 6,"zhangsan",7 };
    printf("%d,%s,%d", s.x, s.name, s.y);//使用 结构体变量名.结构体成员名(s.name) 可得到相应数据
}

运行结果:

结构体的定义和初始化_链表

2.结构体嵌套初始化

#include <stdio.h>
struct p
{
    char y;
};

struct node
{
    int x;
    char name[10];
    struct p a;//引用之前须先初始化结构体struct p

};
struct node s = { 6,"zhangsan",{'w'}};
int main()
{

    printf("%d,%s,%c", s.x, s.name, s.a.y);//使用 结构体变量名.结构体变量名.成员名(s.a.y)可得到嵌套结构体相应数据
}

运行结果:

结构体的定义和初始化_C_02


以上就是结构体的基本知识,欢迎指正~

上一篇:结构体内存对齐
下一篇:没有了
网友评论