有人能給我一個簡短的解釋,說明在下面的函數中發生了什麼不同嗎?指向指針的指針和指向數組的指針
void f1(data_t **d)
{
for (int i=0; i<MAXSIZE; i++)
{
(*d)[i].ival = i;
}
}
void f2(data_t **d)
{
for (int i=0; i<MAXSIZE; i++)
{
(*d)->ival = i;
(*d)++
}
}
void f3(data_t *d)
{
for (int i = 0; i<MAXSIZE; i++)
{
d->ival = i;
d++;
}
}
void f4(data_t *d)
{
for (int i = 0; i<MAXSIZE; i++)
{
d[i].ival = i;
}
}
特別是在f2中發生了什麼不同。但每件事情都有明顯的不同。
f1和f3做同樣的事情(但不同)。 F2徹底失敗了,和F4是越野車(工作在這個例子中,但是當我試圖把其他值轉換爲其他指針(字符*)的字符串結束奇怪。)
你如何解釋你認爲正在發生的事情...... – 2012-04-11 06:34:29
這是功課嗎? – loganfsmyth 2012-04-11 06:37:05
是這種家庭嗎? – giorashc 2012-04-11 06:37:50