以下の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'