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

 

  • 总结:结构体数据类型的特性与普通数据类型的特性是一致的

 

posted @ 2015-01-26 22:00  anoorshan  阅读(345)  评论(3编辑  收藏  举报