在下面的 C 程序中,我不明白为什么在我调用 foo.buf[0] = 'A' 之后。foo 不是在做值传递吗?
#include <stdio.h>
#include <stdlib.h>
void foo(char buf[])
{
buf[0] = 'A';
}
int main(int argc, char *argv[])
{
char buf[10];
buf[0] = 'B';
printf("before foo | buf[0] = %c\n", buf[0]);
foo(buf);
printf("after foo | buf[0] = %c\n", buf[0]);
system("PAUSE");
return 0;
}
输出:
before foo | buf[0] = 'B'
after foo | buf[0] = 'A'