简单描述struct和typedef struct的区别

struct和typedef struct

定义结构体

struct Tag //Tag是结构体标签,名字由自己起
{
	member1;
	member2; 
	..... //member是结构体成员
}var; //结构变量,可以声明多个

Tag,member,var三者之间至少出现两个

//1
struct
{
	member;
	....
}var;
//2
struct Tag
{
	member;
	.....
};
//3
struct Tag var;
#include<bits/stdc++.h>//c++万能头文件,有些编译器无法识别
using namespace std;

struct student
{
	int num;
};
int main()
{
	struct student stu; //声明一个叫stu的变量,struct student和int, string的意思是一样的
	stu.num = 10; //访问结构体中的成员,并赋值10
	cout<<stu.num;
}

//struct student
//{
//	int num;
//} stu; //是一个变量
//
//int main()
//{
//	stu.num = 10; //此时stu就相当于struct student stu;
//	cout<<stu.num<<endl;
//}
//typedef struct student
//{
//	int num;
//}stu; //此时的stu = struct student,就是说stu是结构体类型的别名,方便定义结构体变量
//
//int main()
//{
//	//stu.num = 10; //错误,此处stu表示的是结构体类型,并非一个变量
//	stu stu1; //正确,声明一个结构体变量
//	stu1.num = 20;
//	cout<<stu1.num<<endl;
//	//cout<<stu.num<<" "<<stu1.num;
//}

总结:没有加typedef时,结构体分号前的名称是一个结构体变量,可以直接调用结构体内成员变量,加上typedef后,则是一个结构体类型,类似于int,string,需要声明变量后才能调用结构体内的成员变量
以上只是个人的一点理解,如有错误与不妥还请及时指出,以免误导大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值