[問題] 請教一些基本問題

看板C_and_CPP (C/C++)作者 (Mr.Children-花火)時間16年前 (2009/09/28 11:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
大家好,以下幾題我有跑過程式 但卻不知答案為何是如此,請各位幫我解惑,謝謝!! Q1. int a[5]={1,2,3,4,5}; printf("%d",(a+1)[2]); Ans:4 (a+1)[2]代表的是? Q2. void foo(int b[][3]) { ++b; b[1][1]=1; } int main(void) { int a[3][3]={ {1,2,3} , {4,5,6} , {7,8,9} }; foo(a); printf("%d\n",a[1][1]); printf("%d\n",a[2][1]); } Ans: 5 1 foo(a)這個副程式中發生了什麼事使得a矩陣數值改變? Q3. void addsum(int *num) { int number = *num; printf("number=%d\n",(*num)++); } int main(void) { int i,number=100; for(i=0;i<N;i++) addsum(&number); } Ans: number=100 number=101 number=102 for迴圈中的&number不是都是指向同一個address嗎 為何addsum副程式中number還是可以累加? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.0.47
文章代碼(AID): #1Am2Um0O (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Am2Um0O (C_and_CPP)