A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嗨灬小凯 中级黑马   /  2015-4-28 23:30  /  667 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

struct Person {    //  只是定义了一个类型  ,没有分配存储空间,
    char name[30]; // 10个汉字    //哪这里分配了空间没?
    char phone[12]; // 手机   //然后下面main函数里,这个函数只有地址?

};


int main(int argc, const char * argv[]) {
   
    // 定义结构体数组
    struct Person pers[3];
    // 要求用户循环输入
    for (int i = 0; i < sizeof(pers) / sizeof(struct Person); i++) {
        printf("请输入姓名\n");
        scanf("%s", pers[i].name);
        printf("请输入电话\n");
        scanf("%s", pers[i].phone);
    }
   
    // 打印
    for (int  i = 0; i < 3; i++) {
        printf("%s, %s\n", pers[i].name, pers[i].phone);
    }
   
   
   
    return 0;
}

2 个回复

倒序浏览
楼主,你这样可以运行出想要的结果吗?
回复 使用道具 举报
你在定义一个结构体时(包括对他内部成员的定义),系统是不会分配存储空间的,就好像对int类型不会分配存储空间一个道理。
当你定义一个结构体变量时,才会分配存储空间,空间大小是结构体内最大成员的整数倍。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马