下列程序的輸出結(jié)果是int b=2;int func(int *a){ b+=*a; return(b);}main(){ int a=2, res=2; r
下列程序的輸出結(jié)果是int b=2;int func(int *a){ b+=*a; return(b);}main(){ int a=2, res=2; res += func(&a); printf("%d\n",res);} A.2 B.4
C.6 D.8
正確答案:C在本題程序中,首先定義了一個(gè)全局整型變量b,并給其賦初值為2,然后定義一個(gè)函數(shù)func,該函數(shù)帶有一個(gè)指針類型的形參,在函數(shù)體中,通過形參的值來改變?nèi)肿兞縝的值,b+=*a等價(jià)于b=b+(*a),然后通過return語(yǔ)句返回計(jì)算后的變量b的結(jié)果。在主函數(shù)中,定義兩個(gè)整型變量a和res,并都賦初值為2,然后調(diào)用func函數(shù),傳遞的形參是變量a的地址,即使形參指針變量a指向?qū)崊⒆兞縜的值,通過b+=*a計(jì)算,可以得到b=2+2=4。由于變量b是一個(gè)全局變量,作用域是整個(gè)程序,而非函數(shù)func,因此,在主函
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。