结构体

来源:互联网 发布:php游戏开发教程 编辑:程序博客网 时间:2024/04/18 17:44

1.结构体的概述

          结构体是一种数据类型,就是相当于把某一些数据组合成一个整体的属性的属性值。

        结构体类型与结构体变量是不同的概念要注意以下几点:

          (1).结构体变量可以参加运算,赋值,但结构体类型不可以进行运算,也不能对其赋值。

          (2).结构体的成员可以单独使用,作用相当于普通变量。

          (3).结构体中的成员本身也可以是一个结构体变量。

          (4).结构体类型可以由用户自行定义

                 (结构体成员总内存的计算,将每个成员内存的空间相加,int  4,short  2,long  4,unsigned  4,unsigned   short  2,unsigned long   4.)

2.使用格式

        struct  结构体标识符     //   struct在这里不能省略                这里的结构体标识符,就相当于变量名标识符,命名规则与变量名标识符规则一样

         {

                 成员变量表;       //同一结构体中的 成员变量名不能重名,因为每一个成员变量分别描述的事物的属性是不一样的

                                             //但是不同结构体中的成员可以使用相同的名字

                                            //成员的储存类型也必须是一致的,(如同一种结构体中出现一部分是静态的,一部分是动态的,这样在c语言中是不被允许的  

                 ....

         }:                                   //花括号后面分号不能省略

      struct 结构体名  结构体变量名列表:

                                             //结构体名是可以省略的,在省略结构体名 后 }  后面的;也不要再加上去了(细见后文结构体变量的方法)

#include"stdio.h"
main()
{
 struct student
 {
  int number;
  char name[8];
  char sex;
  int age;
  float c_program;
  
 }st1={35013101,"王迪",'F',20,90, },st2={35013112,"阳光",'M',19,80};
 printf ("st1:%d,%s,%c,%d,%f\n",st1.number,st1.name,st1.sex,st1.c_program);
 printf ("st1:%d,%s,%c,%d,%f\n",st1.number,st1.name,st1.sex,st1.c_program);
}


运行结果:

st1:35013101,王迪,F,0,0.000000
st1:35013101,王迪,F,0,0.000000
请按任意键继续. . .

3.   有三种定义结构体变量的方法
       (1).先声明结构体类型再定义变量名
                  struct 结构体名
                  {成员列表};
                  struct 结构体名   结构体变量名;
        (2).在声明类型的同时定义变量
                  struct 结构体名
                  {成员列表}
                  变量名列表;                                //注意花括号后面无分号;
        (3).直接定义结构体类型变量
                  struct
                  {成员列表}变量名列表;
        (4).结构体成员是另外一个结构体类型的变量
                  结构体的成员允许是另外一个结构体类型的变量或者是自身类型的指针,但不允许是自身类型的变量。
                

1 0