对于测试代码如下:
#include <stdio.h>
int addTen(int x, int b[])
{
b[2] = x + b[2];
return b[2];
}
void main(void)
{
int a[3] = {4,5,6};
int i = 2;
printf("%i %i %i \n", a[i], addTen(10,a), a[i]);
}
为什么输出是 16、16、6?我知道即使编译器像 a[i] <- addTen(10,a) <-a[i] 那样处理从右到左的顺序。调用 addTen(10,a) 后,a[i] 已经是 16(不是 6)。那么为什么输出不是16、16、16呢?谢谢!