[問題] 請教一些基本問題
看板C_and_CPP (C/C++)作者kiminozo (Mr.Children-花火)時間16年前 (2009/09/28 11:04)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章