C语言中的结构体
- 结构体类型的定义:
1 struct student 2 { 3 int id; 4 char name[10]; 5 6 };
注:student是自定义的数据类型,并不是变量像int,char 是基本数据类型,
- 结构体变量的定义和引用:
1 struct student 2 { 3 int id; 4 char name[10]; 5 } mike,lily; //直接定义两个结构体变量
1 student mike ={123,{'m','i','k','e'}};//定义变量并初始化 2 mike.id = 20130000+ mike.id //使用 3 for(int i = 0; mike.name[i] != '\0'; i++) 4 mike.name[i]= toupper(mike.name[i]); 5 cout<<"ID: "<<mike.id<<"name: "<<mike.name<<endl;//
- 结构体变量的存储:
一个结构体变量占有一片连续的内存空间
- 结构体变量的赋值:
1 student mike ={123,{'m','i','k','e'}}; 2 student lily; 3 lily = mike;//可以直接赋值,对应的变量也赋值
- 结构体变量作函数的参数
与变量做函数参数相同,形参和实参直接进行值传递时,只copy一个副本,与数组名作参数不同
- 结构体变量作函数的返回值
也是copy一个副本进行赋值
- 指向结构体的指针:
student mike={123,{'m','i','k','e'}}; student *ps = &mike; cout<<"ID: "<<(*ps).id<<"name: " <<(*ps).name<<endl; cout<<"ID:"<<ps->id<<"name: "<<ps->name<<endl;
- 结构体数组:
1 struct student 2 { 3 int id; 4 char name[10]; 5 } stu[10];
- 总结:结构体数据类型的特性与普通数据类型的特性是一致的