在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;