黑马程序员技术交流社区
标题:
内存结构还是搞不太懂
[打印本页]
作者:
嗨灬小凯
时间:
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