LinuxC程序设计基础—结构体

结构体的定义

        “结构"是一个构造类型,它由多个"成员"构成,每个"成员"的类型可以是一个基本类型也可是一个构造类型。一个"结构"中往往出现不同数据类型的"成员"。例如再学生的登记表中,姓名丶性别为字符类型;学号可为整形或者字符类型;年龄为整型;成绩为整型或实型。很显然这些学生信息不能用一个数组来存放。因为数组中的各个元素类型必须一致,以便系统编译处理。为了解决不同类型成员放在一起,C语言给出了另一个构造数据类型——“结构”又叫结构体

        结构既然是一种“构造”而成的数据类型,那么在说明和使用时必须先定义它也就是构造它,如同在说明和调用函数之前先定义函数一样。

        通常我们定义一个简单的构造体形式为:

        struct  结构体名

        {

            数据类型1  成员名1;

            数据类型2  成员名2;

            ....................................

            数据类型n   成员名n;

        }

        通过一个简单的例子来说明上面的形式:

main()

{

struct complex_struct{ double x,y;}z;

double x=3.0;

z.x=x;

z.y=4.0;

printf("struct value:z.x=%d z.y=%d\n",z.x,z.y);

}

结果显示:struct value:z.x=3.000000 z.y=4.000000


        我们定义结构体类型有三个方法:

        方法①  先定义结构体类型 再定义变量名

                

        方法②  定义结构体类型同时定义结构体类型变量

                

        方法③  直接定义结构体类型变量

                 

说明

        结构体类型与结构体变量概念不同 
        类型:不分配内存;     变量:分配内存 
        类型:不能赋值、存取、运算;     变量:可以

        结构体嵌套

        结构体也是一种递归定义:结构体的成员具有某种数据类型,而结构体本身也是一种数据类型。换句话说,结构体的成员可以是另一个结构体,即结构体可以嵌套定义。、

        一个简单的例子来说明嵌套结构体

#include "stdafx.h"  
struct Point  
{  
    int x;  
    int y;  
    void tostring()  
    {  
        printf("%d",x+y);  
    }  
};  
struct lin  
{  
    Point form;  
    Point to;  
    void print()  
    {  
        printf("%d",form.x*form.y);  
    }  
};  
  
int _tmain(int argc, _TCHAR* argv[])  
{  
    lin lin;  
    lin.form.x=10;  
    lin.form.y=10;  
    lin.to.x=20;  
    lin.to.y=20;  
    lin.form.tostring();  
    getchar();  
    return 0;  
}
        
                                                                                                               微笑 如有不足,请批评指正,谢谢


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值