永发信息网

C语言自己定义的函数怎么把值传到main中?

答案:2  悬赏:30  手机版
解决时间 2021-02-19 15:30
在最上面定义了
static char* parameters[]={};
int main中调用了void parse,parse中调用了int read,read 中调用了 int direction,direction中调用了int reader。在reader得到parameters的值,请问怎么在main中调用。?main中printf的话什么都不显示啊,为什么啊?
最佳答案
static char* parameters[]={}; 你这句不能通过编译,因为你用了{}, 花括号里没东西,没办法确定[]里的数值是几(初始化错误)。
你可以改成:
static char* parameters[10]; //假定指针数组有10个元素。
注意,你声明的是指针数组,它们没有存放字符串的内存单元,只有存放指向的地址的能力。
所以程序里要提供 存放字符串的地方。如果没有提供,你的输出就是空白。

程序例子:
#include
static char* parameters[10];
void f1(){
static char s[ ]="abcd1234"; //存放字符串的地方,函数调用完毕时,单元依然存在
parameters[0]= s;
}
void f2(){
static char s[ ]="xyz5678"; //存放字符串的地方,函数调用完毕时,单元依然存在
parameters[1]=s;
f1(); // 调函数 f1
}

main(){
int i;
f2(); //调函数 f2,f2 调函数f1
for (i=0;i<2;i++) printf("%s\n",parameters[i]); // 输出2个字符串
return 0;
}
输出:
abcd1234
xyz5678
全部回答
只要遍历数组 然后将每个元素与要查询的值进行相减 取减得的绝对值最小的那个就是了 下面是一个简单的代码 #include  #include  int find(int *a,int n,int x) {     int i;     int min=abs(*a-x);     int r=0;     for(i=0;i < n;++i)     {         if(abs(a[i]-x) < min)         {             min=abs(a[i]-x);             r=i;         }     }     return a[r]; } int main(int argc,char **argv) {     int a[20];     int i;     for(i=0;i < 20;++i)     {         a[i]=rand()%20;         printf("%d ",a[i]);     }     printf("\n");     printf("与5最接近的数是: %d\n",find(a,20,5));     return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
湖山完小地址有知道的么?有点事想过去
东风日产篮鸟是不是日系车
如果三天做一次黑脸娃娃会有什么不好吗
同为2.4寸,TFT和QVGA,哪种屏幕更清晰?
到底新威驰5000公里要不要换机油
华育宾馆在哪里啊,我有事要去这个地方
佳能60D使用什么长焦镜头最好?
酒桌吃饭开场白怎么说
保单贷款是投保人以保险单位质押向保险人申请
乳山市乳山口镇毛家村民委员会怎么去啊,有知
有哪些电视剧是在冬天拍的而且衣服好看的
【屏的多音字】屏的多音字组词
为什么那么少人喜欢jonas brothers啊 他们的
京港澳高速公路543公里在鹤壁服务区哪边
数字电视机顶盒的智能卡是干吗用的?里面有钱
推荐资讯
下列生物的变异属于不遗传变异的是DA. 经太空
章鱼网吧、棋牌这个地址在什么地方,我要处理
Q宠大乐斗怎么重新玩个Q宠
小明做了观察唾液淀粉酶的消化作用实验,请你
金盛莱国际软装馆这个地址在什么地方,我要处
祥泰家具城怎么去啊,我要去那办事
mary can ( )the word
遗属补助能被强制执行吗
比如一个地方,多年不曾去过,又惑是一个人多
交警作出事故认定后7个工作日还不放车怎么办
我是淘宝企业店商家,目前卖黑茶,但是销量一
浮力与物体的质量 体积 什么关系
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?