char*型を普通に渡しても配列を渡すように受け渡し元のデータは変わらない。 //関数側で配列内のデータを書き換える void func1(int num[]){ num[0] = 7; } //関数側で文字列を書き換えたい? void func2(char* c){ c = "new name"; } int main(void){ int num[1]; func1(num); printf("%d",num[0]); char* str = "hello world" void func2(str); printf("%s",str); return 0; } //実行結果 //7 //hello world 実行結果をみると、strは中身が書き変わっていない。 void func2(str); この時点では str == c だが、 c = "new name"; char*型の変