在C于C++中定义结构体的区别

在C中定义一个结构体:(注意C里定义结构体一般都会使用关键字typedef)

typedef struct Student
{
    int a;
}stu;

上面的含义是指:给struct Student 起了个别名叫做stu,所以struct Student就等同于stu,两者都相当于结构体的标识符,当我们想要声明结构变量的时候,就可以使用如下命令:

stu stu1;
//或者用
struct Student stu1;

上面的两种形式是等价的;

而该结构体去掉typedef关键字,就只能使用第二种方式声明结构变量了;去掉Student这一词,就只能使用第一种方式声明了。

在C++中定义一个结构体相对简单一些,

struct Student
{
    int a;
};

我们就能用Student来直接声明变量了,比如直接Student stu3; 

另外,C++中若要使用typedef的话,要注意:

//使用typedef关键字
typedef struct Student2
{
    int a;
}stu2;

//不使用typedef关键字
struct Student
{
    int a;
}stu2;

上面两种情况下,stu2的含义是不同的,第一种stu2相当于一个标签,等同于struct Student2,是结构体的标识符,而第二种的stu2则是一个结构体变量,可以直接访问结构体内的成员的。

 

觉得不清楚的大家可以看看我参考的一篇博客:

https://www.cnblogs.com/qyaizs/articles/2039101.html

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值