有以下結(jié)構(gòu)體說明、變量定義和賦值語句 struct STD { char name[10];
有以下結(jié)構(gòu)體說明、變量定義和賦值語句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 則以下scanf函數(shù)調(diào)用語句中錯誤引用結(jié)構(gòu)體變量成員的是______。
A.scanf("%s",s[0].name);
B.scanf("%d",&s[0].age);
C.scanf("%c",&(ps->sex));
D.scanf("%d",ps->age);
正確答案:D解析:要給結(jié)構(gòu)體成員輸入數(shù)據(jù),在scanf語句中需要使用結(jié)構(gòu)體成員的地址。函數(shù)scanf是C語言的標(biāo)準(zhǔn)輸入函數(shù),其作用是在終端設(shè)備上輸入數(shù)據(jù),而且要求輸入項必須是某個存儲地址。選項A中是引用結(jié)構(gòu)體數(shù)組s的第0個元素s[0]的name成員,name是包含10個元素的數(shù)組,數(shù)組名就表示數(shù)組的地址,也就代表s[0].name的地址,所以選項A是正確的。選項B顯然也是正確的,選項C是先用指針變量引用結(jié)構(gòu)體的成員sex后取它的地址,也是正確的。選項D用指針變量引用結(jié)構(gòu)體的成員sex后沒有再繼續(xù)取其地址,所以是錯誤
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。