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)都可以。
谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯