永发信息网

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

答案:4  悬赏:0  手机版
解决时间 2021-02-23 23:46
C语言 定义全局数组,在函数一对数组赋值,在函数二引用数组,但数组初始化了,赋的值不存在了,怎么解决
最佳答案
肯定是你写的代码结构有问题了。全局数组编译时就被初始化,以后再不可能初始化了,除非你有意清0。但有一点就是你必须保证先由函数一为其赋值,再由函数二引用,否则其中的数据则是不可靠的!
全部回答

#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; }

对于你这个问题,感觉好模糊。 你在主函数main中定义一个数组, 然后用函数一对它赋值 然后再用函数二调用应该就没有问题啦。 数组在函数间的传递时传递地址的。
在主函数中或者在全局中声明数组,将该数组的地址给函数一,同样在将数组的地址给函数二应用! 比如: int main(void) {int array[100]; } 或者直接: #include int array[100]; 就下来定义函数: f(int *p) { } 引用的时候只要f(array);即可 函数二可以设为 f(int array[])或者f(int *p)都可以。 谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从德州到馆陶做汽车怎么走啊?12:30以后的
厦门市龙游天下旅行社龙岩分公司地址在哪,我
297 356-378如何验算
在前期筹备阶段,大型群众性活动承办单位应做
请问宫喜环是什么材质的
东门横街地址有知道的么?有点事想过去
什么背着么,带着什么,什么爬到什么造句
请帮我介绍一下正宗的杨氏太极师傅
【小学教研活动记录大全】怎样填写小学三年级
驾驶证可以贷款吗
水渣矿粉什么颜色
偃师市洛阳鸿图广告这个地址怎么能查询到,着
上栗县彭高镇华源村村民委员会地址在哪,我要
多选:本案例中评价咨询效果的指标包括()。A.
达考拉平台 在哪里?
推荐资讯
为什么说到自己喜欢的人或事物时,眼睛会发亮?
苹果手机突然没有任何反应,没有显示,也不好
老二勾刀面在什么地方啊,我要过去处理事情
百寿路7号院地址在什么地方,想过去办事
最近很火的神奇宝贝游戏怎么下载怎么登录
【关于开学了的名人名言】新学期的名人名言
比18大27的数是多少
迈克尔杰克逊的那首歌的高潮部分有“i believ
一个女人老是要我陪她玩湘楚嘉华是什么意思,
最近一年七日年化收益率是什么意思
数学小问题:x头顶上一个是什么意思
“3C”标志是(  )的简称。A.IS09000B.中
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?