C语言之结构体

结构体struct 后面的Student是标签,在main函数中使用的时候 要先Student student2,然后

student.name 这样才可以赋值.

而结构体后面跟着的studnet1,在main函数里可以直接student.name的方式赋值。

如果前面跟了typedef关键字,那么student1就等同于Student了。在面函数需要先定义才可以。

此外,还可以在结构体这里直接赋值

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};

用(.)的方式可以访问结构体成员。

结构体也可以作为函数的参数。

结构体指针

使用结构体指针不能直接赋值,如下图所示,这样的方式是错误的。

#include <stdio.h>

struct Student
{
    int age;

    int num;
};

int main()
{
    Student abc;
    Student *student;
    student->age = 10;
    printf("%d", student->age);

    return 0;
}

结构体指针不能写成和普通结构体那样的同样的赋值的方法,二者不是一样的。

结构体指针应该这样赋值,结构体指针用 -> 取值。

#include <stdio.h>

struct Student
{
    int age;

    int num;
};

int main()
{
    Student abc;
    struct Student* student = &abc;
    student->age = 10;
    printf("%d", student->age);

    return 0;
}

从上图可知,如果用tpedef定义一个结构体的话,后面,必须要加struct,struct后面可加可不加,具体看情况,如果typedef enum 是这种情况的话,在mian函数下面直接定义给值就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值