C/C++ struct和typedef struct的区别

4 篇文章 0 订阅

在C中:

Student为标识符类似于变量名、函数名;struct Student为结构体类型;Stu1为结构体变量

#include <stdio.h>
#include <stdlib.h>

struct Student		
{
	int a;                  //Student为标识符类似于变量名、函数名;struct Student为结构体类型
	int b;                  //Stu1为结构体变量
}Stu1;						
						   

typedef struct Teacher		
{
	int age;                //struct Teacher,Tea都为结构体类型,struct为结构体关键字
	int height;             //Tea==struct Teacher;为结构体类型
}Tea;						
							

int main()
{
	struct Student s1;		//若无typedef,必须用struct来声明
	s1.a = 5;
	Stu1.b = 15;
	printf("%d\n", s1.a);
	printf("%d\n", Stu1.b);


	Tea t1;					//若有typedef,可以用以此来声明;
	t1.age = 10;
	
	printf("%d\n", t1.age);

	
	system("pause");
	return 0;
}

 

在C++中:

C++中对struct进行了加强,Student为结构体类型(类似以int 、char);Stu为结构体变量;  可直接声明Student s1;此时s1和Stu都是结构体变量。

使用typedef后,t1、t2都为结构体变量;这就是C++对struct的加强。

#include "iostream"

using namespace std;

struct  Student
{
	int a;
}Stu;


typedef struct Teacher
{
	int age;
	int height;
}Tea;

int main()
{
	Student s1;				//s1为结构体变量,Student为结构体类型
	s1.a = 10;
	Stu.a = 20;				//Stu也是结构体变量。

	cout <<"s1:" <<s1.a << endl;
	cout <<"Stu:" <<Stu.a << endl;
//------------------------------------------------------------------------

	struct Teacher t1;				
	t1.age = 5;
	cout <<"t1:" <<t1.age << endl;

	Teacher t2;					//加不加struct都可以声明结构体变量
	t2.age = 10;
	cout <<"t2:"<< t2.age << endl;

	Tea t3;					//Tea此时为结构体类型,t3为结构体变量
	t3.height = 15;				
	cout <<"t3:" <<t3.height << endl;

	system("pause");	
	return 0;
}	

 

总结:

typedef struct Teacher
{
	int age;
	int height;
}Tea;

在C中声明结构体变量的方法有:

(1)struct Teacher t1;

(2)Tea t2;

 

在C++中声明结构体变量的方法有:

(1)struct Teacher t1;

(2)Teacher t2;

(3)Tea t3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值