我必須建立一個嵌套結構來存儲一些關於某人(姓名,年齡,地址)的基本信息。所以我創建了一個叫做「info」的結構,並且在「info」中創建另一個叫做「address」的嵌套結構。但每當我提示使用for循環存儲值時,我都會收到錯誤。這裏有什麼問題,我該如何解決它?c中的嵌套結構
[錯誤] '結構信息' 沒有名爲 '地址' 成員
[默認啓用] [注意]聲明沒有宣佈任何
#include <stdio.h>
int main(){
struct Info{
char name[30];
int age;
struct address{
char area_name[39];
int house_no;
char district[39];
};
};
struct Info Person[10];
int i;
for(i=0;i<10;i++){
printf("enter info of person no %d\n",i);
printf("enter name\n");
scanf("%s",&Person[i].name);
printf("enter age\n");
scanf("%d",&Person[i].age);
printf("enter address :\n");
printf("enter area name :\n");
scanf("%s",&Person[i].address.area_name);
printf("enter house no : \n");
scanf("%d",&Person[i].address.house_no);
printf("enter district : \n");
scanf("%s",&Person[i].address.district);
}
}
請注意,您不應在調用scanf()時用'&'作爲字符串成員的前綴。如果包含'&',則傳遞的類型是'char(*)[30]'而不是'char *',但'%s'格式需要'char *'。如果編譯器設置得很模糊('-Wall'應該足夠了),它會告訴你類型不匹配 - 並且你應該注意它。 (是的,在大多數實際機器的實際操作中,它確實工作正常 - 但有點巧合;存在類型不匹配,你應該避免這些。) –