我有以下代码:为什么在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