黑马程序员技术交流社区

标题: 内存结构还是搞不太懂 [打印本页]

作者: 嗨灬小凯    时间: 2015-4-28 23:30
标题: 内存结构还是搞不太懂
#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;
}
作者: mony    时间: 2015-4-29 00:26
楼主,你这样可以运行出想要的结果吗?
作者: ruihai    时间: 2015-4-29 09:23
你在定义一个结构体时(包括对他内部成员的定义),系统是不会分配存储空间的,就好像对int类型不会分配存储空间一个道理。
当你定义一个结构体变量时,才会分配存储空间,空间大小是结构体内最大成员的整数倍。




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