有以下程序: void sum(int a[]) { a[0]=a[-1]+a[1]; } main() {int a[10]={1,2,3,
有以下程序: void sum(int a[]) { a[0]=a[-1]+a[1]; } main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n",a[2]); } 程序運行后的輸出結(jié)果是 ______。
A.6
B.7
C.5
D.8
正確答案:A解析:本題將主函數(shù)中a[2]的地址傳遞給了sum函數(shù)中的形參a[],使得sum函數(shù)中的(a+0)為主函數(shù)中a[2]的址,所以 a[-1]即*(a-1)的值為主函數(shù)中a[1]的值;a[1]即*(a+1)的值為主函數(shù)中a[3]的值,故函數(shù)sum中a[0]=2+4,由于此函數(shù)中的 a是指向主函數(shù)中的a[2],所以主函數(shù)中的a[2]的值即為6。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。