揭开struct和typedef struct的真面目

分别从C和C++来揭开它们神秘的面纱,闲言少叙,直入正题。

一、C语言中

①:只使用struct定义结构体

struct Student
{
     char name[10];
     int age;
};

这样定义结构体的时候,在声明变量的时候只能:struct Student stu1;

②:用typedef struct定义结构体
Q:什么是typedef?
A:在计算机的编程语言中用来为复杂的声明定义简单的命名。

typedef struct Student
{
     char name[10];
     int age;
}MyStu;

这样定义结构体的时候,在声明变量的时候就可以 MyStu stu1;
这里的MyStu相当于是struct Student的一个别名,这是typedef的作用。

二:C++中

①:使用struct定义

struct Student
{
     char name[10];
     int age;
};

C++中很简单,这样就定义了Student结构体类型,声明变量的时候:Student stu1

②:C++中如果使用了typedef,则会造成区别

struct Student
{
     char name[10];
     int age;
}stu;    //没有使用typed

这里stu是一个变量,可以直接访问结构体成员变量 : stu.age

typedef struct Student
{
     char name[10];
     int age;
}Stu;    //使用了typedef

这里的Stu是一个结构体类型,等同于struct Student
如要访问结构体成员变量,则Stu stu1; stu1.age

当然,在C++中

struct Student
{
     char name[10];
     int age;
}

这样也定义了Student这个结构体,声明变量的时候可以直接Student stu1。

到这里,它们的神秘面纱已被揭开,在以后的编程中稍微注意咯!胡巴。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值