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