有如下程序段void func(int *a,int b[ ]){ b[0]=*a+6; }main(){ int a,b[5]={0}; a=0;b[0]=3
有如下程序段void func(int *a,int b[ ]){ b[0]=*a+6; }main(){ int a,b[5]={0}; a=0;b[0]=3; func(&a,b); printf("%d\n",b[0]); }程序運(yùn)行后輸出的結(jié)果是A.6 B.7 C.8 D.9
正確答案:A在本題中,程序首定義了一個無返回值的函數(shù)func,該函數(shù)帶有兩個形參,第一個形參是一個指針變量,第二個形參是一個數(shù)組。在主函數(shù)中,定義一個整型變量a和一個整型數(shù)值b,并將b初始化為0,然后通過賦值操作改變變量a的值為0,b[0]的值為3。接著調(diào)用函數(shù)func,傳遞的實(shí)參分別為變量a的地址和數(shù)組b,這時執(zhí)行func函數(shù)的函數(shù)體b[0]=*a+6;語句將數(shù)組b的第一個元素值變?yōu)?+6=6,由于采用的傳值方式是傳址傳值,可以實(shí)現(xiàn)數(shù)據(jù)的雙向傳遞,因此,實(shí)參數(shù)組b的第一個元素值被改為6。然后程序用輸出語句輸出數(shù)組
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。