c语言,在函数外定义了一个数组,在主函数内对该数组输入,之后在子函数内对该数组再输入。

2025-03-05 06:09:12
推荐回答(2个)
回答1:

应该是你的变量定义有问题。

例如程序:

#include 
#include 
char a[5]={'a','b','c','d','e'};
void fun(char a[])
{gets(a);}
int  main(){
gets(a);fun(a);puts(a);
return 0;
}

//运行示例:

初始定义为abcde,主函数输入fghij,函数再次输入klmno,输出结果为klmno

回答2:

函数外定义,那就是全局变量。子函数对数组地址操作肯定变。
你说不变有多种情况:
1、你子函数调用写在打印输出之后。
2、你定义的是指针数组,之后你改变了指针指向的地址。
3、你用指针给数组赋值,然后指针自增,子函数使用指针时没有指向数组首地址。