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

为什么最后显示的结果只是第一次输入的内容?(用的gets输入)。

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

例如程序:

#include <stdio.h>
#include <string.h>
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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-08
函数外定义,那就是全局变量。子函数对数组地址操作肯定变。
你说不变有多种情况:
1、你子函数调用写在打印输出之后。
2、你定义的是指针数组,之后你改变了指针指向的地址。
3、你用指针给数组赋值,然后指针自增,子函数使用指针时没有指向数组首地址。
相似回答