应该是你的变量定义有问题。
例如程序:
#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
函数外定义,那就是全局变量。子函数对数组地址操作肯定变。
你说不变有多种情况:
1、你子函数调用写在打印输出之后。
2、你定义的是指针数组,之后你改变了指针指向的地址。
3、你用指针给数组赋值,然后指针自增,子函数使用指针时没有指向数组首地址。