C结构体声明,定义,初始化(赋值),访问

#include <stdio.h>
//结构是一些值的集合,这些值成为成员变量,结构的每个成员可以是不同类型的变量

//标准结构体
struct Stu//这个Stu是结构体名
{
    //这些是成员变量
    char name[20];
    int age;
    char id[20];
}//这些叫变量列表,可以在这里创建结构体变量,这个是全局变量,即声明的同时定义变量
//赋值存在两种情况,按顺序赋值是s2,不按顺序赋值是s3
s1,s2 = { "zhangsan",23,"111" }, s3 = {.name="李四",.id="112",.age=24},s4;

struct Stu s1; //定义结构体变量s1


//匿名结构体
struct //这里却没有名字
{
    //这些是成员变量
    char id[20];
    int age;
    char name[20];
}s5;//因为没有名字,所以不能像标准结构体一样随便创建结构体变量
    //只能在变量列表的位置,直接创建结构体变量


//结构体的自引用
//注意结构体自引用的时候,不要用匿名结构体,可以避免代码错误
struct Node
{
    int data;//数据域
    struct Node* next;//指针域
};

//typedef 类型 别名;
/*
类型=struct Npde1
    {
        int data;
        struct Node1* next;
    }

别名=Node1
*/
typedef struct Npde1
{
    int data;
    struct Node1* next;
} Node1;

//结构体嵌套
struct SN
{
    char c;
    int i;
}sn1 = { 'q',100 }, sn2 = {.i=200,.c='w'};

struct S
{
    double d;
    struct SN sn;
    int arr[10];
};

int main() 
{
//在声明的时候已经赋值了,在这可以直接使用
    printf("s2.name=%s s3.id=%s\n", s2.name, s3.id);

// 创建标准结构体变量
// struct 结构体名 变量列表名
   struct Stu s4;//这个是局部变量
//赋值是这样的
   s4.age = 22;
//使用是这样的
   printf("s4.age=%d\n",s4.age);

//匿名结构体的使用
s5.age = 21;
printf("s5.age=%d\n",s5.age);

//这里为了方便橙色部分的使用我就不详细的写了

//这是嵌套结构体的赋值,跟数组一样也用{}
   struct S s = { 3.14, {'a',99},{1,2,3} };
//嵌套结构体的使用
   printf("%lf %c %d\n", s.d, s.sn.c, s.sn.i);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foreverInDebug Hou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值