有人能给我一个简短的解释,说明在下面的函数中发生了什么不同吗?指向指针的指针和指向数组的指针
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