<#include <stdio.h>
void scat (char s1[], char s2[]) {
int i = 0, j = 0;
while (s1[i])
i++;
while (s2[j]) {
s1[i]=s2[j];
i++;
j++;
}
}
int main() {
char s1[80], s2[80];
gets(s1);
gets(s2);
scat(s1, s2);
puts(s1);
return 0;
}>
在C语言中,数组名实际上是一个指向该数组首元素的指针。因此,当我们将一个数组作为参数传递给函数时,实际上是将该数组的首地址传递给了函数。在函数内部对该数组进行修改时,实际上也是对这个指针所指向的内存区域进行了修改,从而影响了主函数中的数组。
s1 是数组啊,s1 传递给函数内,这就是传的数组的首地址,相当于传了个char型的指针 , 里面的修改肯定会影响的啊
你传递的 s1 是数组,是地址啊 传地址当然改变啊
不知道你这个问题是否已经解决, 如果还没有解决的话: