永发信息网

C语言 定义全局数组,在函数一对数组赋值,在函数二引用数组,但数组初始化了,赋的值不存在了,怎么解决

答案:4  悬赏:0  手机版
解决时间 2021-02-23 23:46
  • 提问者网友:人傍凄凉立暮秋
  • 2021-02-23 16:40
C语言 定义全局数组,在函数一对数组赋值,在函数二引用数组,但数组初始化了,赋的值不存在了,怎么解决
最佳答案
  • 五星知识达人网友:愁杀梦里人
  • 2021-02-23 17:30
肯定是你写的代码结构有问题了。全局数组编译时就被初始化,以后再不可能初始化了,除非你有意清0。但有一点就是你必须保证先由函数一为其赋值,再由函数二引用,否则其中的数据则是不可靠的!
全部回答
  • 1楼网友:上分大魔王
  • 2021-02-23 19:29

#include<stdio.h> #include<string.h>

char *get_string(char *p);

int main(void) {  int n=0;  char in[100];  get_string(in);  n=strlen(in);  puts(in);  n=strlen(in);  printf("\nn=%d\n", n); // 原因是这句用了%d格式符, 但是却忘记写对应的形参了  getchar();  return 0; }

运行截图:

char *get_string(char *p) {  int i=0;  gets(p);  printf("\ni = %d\n",strlen(p));  return p; }

  • 2楼网友:像个废品
  • 2021-02-23 19:13
对于你这个问题,感觉好模糊。 你在主函数main中定义一个数组, 然后用函数一对它赋值 然后再用函数二调用应该就没有问题啦。 数组在函数间的传递时传递地址的。
  • 3楼网友:渊鱼
  • 2021-02-23 19:01
在主函数中或者在全局中声明数组,将该数组的地址给函数一,同样在将数组的地址给函数二应用! 比如: int main(void) {int array[100]; } 或者直接: #include int array[100]; 就下来定义函数: f(int *p) { } 引用的时候只要f(array);即可 函数二可以设为 f(int array[])或者f(int *p)都可以。 谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯