初学C语言之结构体

      结构体属于一种数据构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。

   一、结构体的定义:

   struct  结构名  {成员列表}; 

   例如:struct stu

     {

        int num;

        char name[30];

        char sex;

        float score;

       };  

   在这个结构定义中,结构名为stu,该结构由四个“成员”组成,包括num(整型变量),name(字符数组),sex(字符变量),score(实型变量)。由此可见,结构体是一种由类型不同的若干有序变量组成的集合。  


    二、结构类型变量的说明

    1)先定义结构体,再说明结构变量  

        struct stu

     {

        int num;

        char name[30];

        char sex;

float score;

  };

   struct stu people1,people2;//说明两个变量people1和people2为stu结构类型。也可以使用宏定义使一个符号常量来表示一个结构类型。

   例如:

   #define STU struct stu

    STU

    {

    int num;

    char name[30];

    char sex;

    float score;

    };

  STU people1,people2;


注意:1.结构体类型与结构体变量是不同的概念,不能混同。

           2.对结构体变量中的成员,可以单独使用。




   2 )在定义结构类型的同时说明结构变量

    struct stu

    {

     int num;

     char name[30];

     char sex;

     float score;

    }people1,people2;//说明了people1,people2变量为stu类型后,就可以向这两个变量中的各个成员赋值。(成员就是num,name,sex,score)



    3)结构变量成员的表示方法

    一般形式:  结构变量名.成员名(中间的点不可省略,也不可以用空格代替)

    例如: people1.sex   就是代表第一个人的性别

   说明:结构体变量不能整体引用,只能引用变量成员。




    4)结构变量赋值

      意思就是给各成员赋值。可用输入语句或赋值语句来完成。

     int main(int argc,const char *argv[])

     {

     @autoreleasepool{

                   struct stu {

      int num;

     char *name;

     char sex;

     float score;

    }people1,people2;

    people1.num = 66;

    people1.name = "Leo";

    printf("intput sex and score\n");

    scanf("%c%f",&people1.sex,&people1.score);

    people2 = people1;

    printf("Number = %d\nName = %s\n",people2.num,people2.name);

    printf("Sex = %c\nScore = %f\n",people2.sex,people2.score);

    }

    return 0;

    }

   本程序中用赋值语句给num和name两个成员赋值,用scanf函数输入性别和成绩的值,然后把people1的所有成员的值整体赋予people2,最后分别输出people2的各个成员值。



     5)结构体类型嵌套使用




总结:

    1.当一个结构体类型定义在函数之外时,它具有全局作用域;若定义在任一对花括号之内,则具有局部作用御,其作用范围是所在花括号构成的快。

    2.结构体是一种复杂的数据类型,是数目固定、类型不同的若干成员的集合,结构体类型的定义只是列出了该结构的组成情况,编译系统并未因此而分配存储空间,当定义了结构体类型的变量或数组后,编译系统才会分配存储空间。

    3.如果有两个结构体的成员类型、名称、个数相同,但结构体名不同,也是两个不同的结构类型。



个人心语:

        大学时期,因为所学的专业是电子信息工程,课程中有涉及到一些C语言程序设计的内容,但都属于浅尝辄止,平时也比较贪玩,所以在这方面并没有积累较多的基础知识,基本上属于零基础。毕业后想往移动互联网方向发展,于是开始自学C语言,以此入门ios开发。自学过程主要靠看网上免费的教学视频,发现学习效果并不理想,主要是学习过程中的问题得不到及时有效的解决,往往越积越多,无法开展下一阶段的学习,于是报名参加了培训,经过一段时间的学习,发现了这门语言学习中的乐趣,对于一个基本算是初学者的人而言,收获颇多。发此博文,主要是想巩固之前学过的知识点,之后会继续写一些学习过程中有疑问或者自己学习心得的文章,如有任何疏漏或者错误的地方,也请各位大神抽空帮忙指导一下,在此先谢过了。也希望和更多同是零基础学习ios开发的人成为朋友,共同交流学习,学习本来就是一个需要互动的过程。   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值