我有以下代碼:爲什麼在C中通過引用傳遞字符數組?
#include <stdio.h>
void changeValue(char str[]) {
str[2] = 'a';
}
int main()
{
char a[]="Hello world";
changeValue(a);
printf("%s", a);
}
而且我想明白這是怎麼工作的。爲什麼在傳遞名爲'a'的數組時它通過引用傳遞?那麼,我在changeValue裏做的改變實際上是從外面看到的嗎?不應該將函數參數定義爲char * str,以便能夠更改它?
它沒有通過引用傳遞;相反,數組衰減成一個指針,而函數實際上接收到一個指向數組第一個元素的指針作爲它的參數。 – Jon
[This](http://stackoverflow.com/q/1335786/1410711)!!! – Recker
@Recker:這個問題有很多重複。你不鏈接到其中的一個。 – tommyo