有以下程序 #include struct st { int x,y;} data[2]={1,10,2,20}; main(
有以下程序 #include <stdio.h> struct st { int x,y;} data[2]={1,10,2,20}; main() { struct st *p=data; printf("%d,",p->y); printf("%d\n",(++p)->x); } 程序的運(yùn)行結(jié)果是______。
A.10,1
B.20,1
C.10,2
D.20,2
正確答案:C解析:本題定義了一個包含兩個元素(data[0]、data[1])的結(jié)構(gòu)體數(shù)組data,其中data[0].x=1;data[0].y=10;data[1].x=2; data[1].y=20。在主函數(shù)中,定義了一個指向結(jié)構(gòu)體數(shù)組的結(jié)構(gòu)體指針變量p,使得p指向結(jié)構(gòu)體數(shù)組的首地址,所以p->y訪問的是第一個鮚構(gòu)體數(shù)組元素的第二個值,即data[0].y;(++p)->x訪問的是第二個結(jié)構(gòu)體數(shù)組元素的第一個值,即 data[1].x,所以程序輸出結(jié)果為10,2。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。