struct
把一组变量组合成一个构造的一种方式
1、struct可以写在函数里,也可以单独写在外面,自成一体,C++的class对象的语法就是由struct演化而来的。
2、注意以分号结束。
struct Student{
string name;
int age;
int number;
};
int main(){
struct Student s;//如果不使用别名,s的数据类型就是struct Student
s.name="张三";
return 0;
}
struct和typedef
typedef struct {
string name;
int age;
int number;
}Student;
int main(){
Student s;//使用别名,可以简化定义变量
s.name="张三";
return 0;
}
带struct名的typedef别名结构体举例
typedef struct SelfReferential{
int i;
SelfReferential* sr;
}SelfReferential;
int main(){
SelfReferential sr1,sr2;
//sr1和s2互相指向且每个都有一块数据
sr1.sr=&s2;
sr2.sr=&s1;
sr1.i=47;
sr2.i=1024;
}
指针和struct、typedef
//struct的名字和typedef的名字可以不相同,但是还是相同的好
typedef struct Structure{
char c;
int i;
float f;
double d;
}Structure;
int main(){
Structure s1,s2;
Structure* sp=&s1;
sp->c='a';//用'->选择s1的成员并初始化他们'
sp->i=1;
sp->f=3.14;
sp->d=0.0000093;
//指针的一个好处就是可以动态重定向它的指向,使编程更灵活
//java中的动态绑定底层其实还是指针
sp=&s2;
sp->c='a';
sp->i=1;
sp->f=3.14;
sp->d=0.0000093;
return 0;
}