定义
结构体是用户根据实际需要自己定义的复合数据类型,其实跟java中类很像,结构体就相当于没有方法的类
class Student
{
int sid;
char name[200];
int age;
void speak(){};
};
将上面代码中方法去掉,class改成struct就成了结构体
struct Student
{
int sid;
char name[200];
int age;
};
结构体定义了一个新的数据类型,不是变量,变量会分配内存,而数据类型不分配
使用结构体的方式
struct Student st = { 1000,"xiaoming",18 };
struct Student *pst=&st;//pst指向st,故*pst就是st本身
- 第一种方式:st.sid = 99;
- 第二种方式:pst->sid = 99;
- 第三种方式:(*pst).sid = 99;
其实本质上只有普通变量用 . ,指针变量用->这两种表示,即第一种方式和第二种表示
注意
- 结构体可以相互赋值
- 普通结构体变量和指针结构体变量作为函数传参时,因为只传过去了4个字节的指针大小(无论指针指向谁,指针大小都是4个字节),所以速度快,但是安全性差