看板 C_and_CPP 關於我們 聯絡資訊
大家好,以下幾題我有跑過程式 但卻不知答案為何是如此,請各位幫我解惑,謝謝!! 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