黑马程序员_C语言学习笔记之结构体和枚举

------- IOS培训android培训、期待与您交流! ----------
1.为什么使用结构体

     平时我们总是使用一个int ,flloat,double,char等基础数据类型来定义一个变量,其实这在现实的情况是不能满足

要求的,比如,我们要定义一个学生的变量,那学生有最基本的属性,如姓名,年龄,身高。姓名需要char *类型,年

龄是int类型,身高是double类型。那这是就需要结构体了

 

2.结构体的定义

结构体内部的元素,也就是组成成分,我们一般称为"成员"。

结构体的一般定义形式为:

struct 结构体

      类型名1   成员名1;

      类型名2   成员名2;

      类型名3   成员名3;

      类型名4   成员名4;

struct  就是定义结构体的关键子,不可缺少,下满举一个具体的例子:

 

  struct test//定义一个名为test的结构体 

    int a;//定义结构体成员a 
    int b;//定义结构体成员b 
}; 
 
void main()     

    test pn1;//定义结构体变量pn1  


    test pn2;//定义结构体变量pn2 
 
    pn2.a=10;//通过成员操作符.给结构体变量pn2中的成员a赋值 


    pn2.b=3;//通过成员操作符.给结构体变量pn2中的成员b赋值 
 
    pn1=pn2;//把pn2中所有的成员值复制给具有相同结构的结构体变量pn1 


    cout<<pn1.a<<"|"<<pn1.b<<endl; 


    cout<<pn2.a<<"|"<<pn2.b<<endl; 
 
    test *point;//定义结构指针 
 
    point=&pn2;//指针指向结构体变量pn2的内存地址 


    cout<<pn2.a<<"|"<<pn2.b<<endl; 


    point->a=99;//通过结构指针修改结构体变量pn2成员a的值 


    cout<<pn2.a<<"|"<<pn2.b<<endl; 


    cout<<point->a<<"|"<<point->b<<endl; 


    cin.get(); 
}

 

3.定义结构体的注意点

        struct Student {
            int age;
            struct Student stu;
        };

       //这个的错误原因是自己的成员包含了自己

 

          

     struct Date {
          int year;
     int month;
     int day;
     };

    struct Student {
        char *name;
       struct Date birthday;
    };

     //这样是可以的,结构体是允许在他的成员是一个结构体类型的成员。

     

4.枚举:

      如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来

 

5.枚举定义:

 

           enum 枚举名{
               标识符[=整型常数],
               标识符[=整型常数],
               ...
               标识符[=整型常数],
          } 枚举变量;

  如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始,  顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。

 

6举例:

      enum weekday
      { sun,

      mou,

      tue,

      wed,

      thu,

      fri,

      sat

     };

 

 

 ------- IOS培训android培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值