初学C语言之结构体

原创 2015年07月07日 19:37:22

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

   一、结构体的定义:

   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开发的人成为朋友,共同交流学习,学习本来就是一个需要互动的过程。   

初学C语言----结构体

初学C语言----结构体 结构体— 作用:一个变量可以保存多个不同类型的数据;   定义结构体--语法:   结构体初始化: 1.    先声明后赋值:   struct 结构体名{...

C语言结构体实现方法

  • 2015年03月21日 01:24
  • 548KB
  • 下载

C语言 循环结构体设计

  • 2017年10月21日 09:42
  • 1.25MB
  • 下载

C语言回顾之结构体、枚举、宏定义、typedef、extern和static的使用

一、结构体 1、什么是结构体 由多个不同类型的数据构成一个整体 2、定义结构体步骤 (1)定义结构体类型 (2)根据结构体类型,定义结构体变量 例如: #include int main() {...

C语言结构体

  • 2013年03月27日 15:50
  • 508KB
  • 下载

c语言结构体

  • 2013年12月08日 13:47
  • 705KB
  • 下载

结构体【C语言程序设计】

一.实验目的: 1.学习掌握结构化数据的编程使用 二、实验内容和步骤 1.分析并修改下面程序错误,使之能够正常运行。 错误代码一: 程序实现输出图书的...
  • gnosed
  • gnosed
  • 2017年10月31日 16:30
  • 69

【C语言】结构体包含指向自己的指针

转自:http://flashcs3.blog.163.com/blog/static/1997203142013297569964/ 问题1:两种声明有什么不同? struct x1 {...}...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初学C语言之结构体
举报原因:
原因补充:

(最多只允许输入30个字)