黑马程序员技术交流社区

标题: C语言 struct结构体 5种定义初始化方式 详详解! [打印本页]

作者: sf1215225    时间: 2015-11-12 01:06
标题: C语言 struct结构体 5种定义初始化方式 详详解!
#include <stdio.h>

int main(){

    //第一种定义方式
    struct Dog{int leg1;int head;char *name;};
    struct Dog jingHa={4,1,"请叫我小灰"};
    printf("%d条腿%d个头,%s\n",jingHa.leg1,jingHa.head,jingHa.name);
    //打印结果:4条腿1个头,请叫我小灰

    //第二种定义方式
    struct student{char *name;char *sex;int high;char grade;}classmate={"孙凡","男",175,'a'};
    printf("姓名:%s\t性别:%s\t身高:%d\t评分:%c\n",classmate.name,classmate.sex,classmate.high,classmate.grade);
    //打印结果:姓名:孙凡        性别:男        身高:175        评分:a

    //第三种定义方式
    //只有在初始化的时候才能批量赋值.
    //定义好之后只能单个赋值,和数组一样.
    struct phone{char *name;int price;}apple;
    apple.name = "我叫6S";
    apple.price = 6088;
    printf("%s,我卖%d元人民币\n",apple.name,apple.price);
//    打印结果:我叫6S,我卖6088元人民币

    //匿名类型结构体(不定义数据类型名)
    //注意必须定义的同时初始化.
    //而且这种结构体定义方式不能重用
    struct {char *name;char *whos;int manyPerson;}room={"书房","孙凡",1};
    printf("房间名字%s,%s的房间,房间里有%d个人\n",room.name,room.whos,room.manyPerson);
    //打印结果:房间名字书房,孙凡的房间,房间里有1个人

    //嵌套定义
    struct wallet{char *name;int size;};
    struct bag{char *name;int size;struct wallet mini;};
    struct bag backpack = {"双肩背",28,"牛皮小钱包",5};
    printf("我是%s,有%d寸大,我里边还有%s%d寸大\n",backpack.name,backpack.size,backpack.mini.name,backpack.mini.size);
//    打印结果:我是双肩背,有28寸大,我里边还有牛皮小钱包5寸大

    return 0;
}


作者: qiluzhixing    时间: 2015-11-13 22:47
活学活用
作者: 韦德460    时间: 2015-11-14 10:24
收藏,回来看看
作者: poxiao    时间: 2015-11-14 12:20
楼主总结的很详细,前来学习
作者: 蜗牛飞翔    时间: 2015-11-14 23:07
围观学习
作者: 唐阿丽    时间: 2015-11-15 08:15
楼主总结的很详细,前来学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2