Sta*_*k18 1 c arrays string pointers
我有以下代码:
#include <stdio.h>
void changeValue(char str[]) {
str[2] = 'a';
}
int main()
{
char a[]="Hello world";
changeValue(a);
printf("%s", a);
}
Run Code Online (Sandbox Code Playgroud)
我试图了解这是如何工作的.为什么在传递名为'a'的数组时,它是通过引用传递的?那么,我在changeValue中所做的更改实际上是从外部看到的?不应该是定义为char*str的函数参数,以便能够更改它吗?
在许多情况下(包括将它们作为函数参数传递),数组将转换为指向其第一个元素的指针.
所以,你传递的不是数组.事实上,原型中使用的语法只是眼睛糖果
void changeValue(char str[]);
void changeValue(char *str);
Run Code Online (Sandbox Code Playgroud)
上面的原型是完全相同的!
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |