c语言中main函数中的函数怎么调用函数?
答案:7 悬赏:40 手机版
解决时间 2021-03-31 10:54
- 提问者网友:谁的错
- 2021-03-31 07:25
c语言中main函数中的函数怎么调用函数?
最佳答案
- 五星知识达人网友:思契十里
- 2021-03-31 08:46
假如有一函数f, 没有参数, 则要这样调用:
f();
其中, f是函数f的函数名, 但对于编译器来讲, f是一个地址, 它指向了f函数代码段的开头部分.而()是一个运算符, 它非常类似于*, 但是*是取值的, 而()是让程序跳转到f处执行程序. 最后的那个分号就是标识着一个语句的结束
如果f有一个整型的参数, 那么需要这样调用:
f(1);
只是多了一个1, 这个1就是()运算符要复制到f函数的栈中了, 准确地说是复制到它的形参中.
如果f有多个参数, 则只需要在每个形参之间打上逗号:
f(1, 2, 3);
逗号只是用来起分隔作用.
f();
其中, f是函数f的函数名, 但对于编译器来讲, f是一个地址, 它指向了f函数代码段的开头部分.而()是一个运算符, 它非常类似于*, 但是*是取值的, 而()是让程序跳转到f处执行程序. 最后的那个分号就是标识着一个语句的结束
如果f有一个整型的参数, 那么需要这样调用:
f(1);
只是多了一个1, 这个1就是()运算符要复制到f函数的栈中了, 准确地说是复制到它的形参中.
如果f有多个参数, 则只需要在每个形参之间打上逗号:
f(1, 2, 3);
逗号只是用来起分隔作用.
全部回答
- 1楼网友:怀裏藏嬌
- 2021-03-31 14:29
函数b{调用函数a} :
函数a的返回值作为函数b的参数。追问函数a是输出语句,我想让函数b,c……打印出自己的结果。
函数a的返回值作为函数b的参数。追问函数a是输出语句,我想让函数b,c……打印出自己的结果。
- 2楼网友:鱼芗
- 2021-03-31 13:48
就这样调用啊,这叫嵌套调用
如:
int max(){}
void sort(){}
int main()
{
int m;
.......
sort{ m=max();........ }
.........
}
如:
int max(){}
void sort(){}
int main()
{
int m;
.......
sort{ m=max();........ }
.........
}
- 3楼网友:掌灯师
- 2021-03-31 13:36
C语言 函数里面是不能定义函数的,何来main函数中的函数?
(大括号是代表模块,不能写在函数名后面的。)
(大括号是代表模块,不能写在函数名后面的。)
- 4楼网友:忘川信使
- 2021-03-31 12:38
不太明白你什么意思,调用函数通过函数名调用,或都可以通过函数指针调用
int fun1()
{
};
int (*pfun)();
main()
{
fun1();//直接调用
p=fun1;
(*p)();//调过指针调用
}
int fun1()
{
};
int (*pfun)();
main()
{
fun1();//直接调用
p=fun1;
(*p)();//调过指针调用
}
- 5楼网友:醉吻情书
- 2021-03-31 11:02
)
原因:主函数中chose为char型,若menu返回的为int型无法自动转换为char型
2)建议将menu函数放在main主函数前,或在main主函数前进行声明char menu(void);
3)建议将scanf("%c", &choice);改为choice=getchar();这样就需要将变量choice声明为int型,仍使用原来的int menu()函数,同时将main主函数中的变量chose声明为int型
4)建议若使用C编译器(如TC2.0),请将变量声明与函数起始处
修改后的程序
int menu()
{
int choice;
printf("A<-Manage Search->B\n");
printf("C<-Sort flight informations\n");
printf("D.bookTicketE.returnticket F.staticticket\n");
printf("G.Exit the Aircraft Booking System!\n");
printf(" -----What do you want to do :");
choice = getchar();
return choice;
}
int main()
{
int chose;
while(1)
{
chose=menu();
switch(chose)
{
case 'A':
manageflight();
break;
case 'B':
flightsearch();
break;
case 'C':
sortinformation();
break;
case 'D':
flightbook();
break;
case 'E':
flightdishonnor();
break;
case 'F':
flightstatic();
break;
case 'G':
return 0;
default:
printf("\n--input error !--\n");
}
}
return 0;
}
原因:主函数中chose为char型,若menu返回的为int型无法自动转换为char型
2)建议将menu函数放在main主函数前,或在main主函数前进行声明char menu(void);
3)建议将scanf("%c", &choice);改为choice=getchar();这样就需要将变量choice声明为int型,仍使用原来的int menu()函数,同时将main主函数中的变量chose声明为int型
4)建议若使用C编译器(如TC2.0),请将变量声明与函数起始处
修改后的程序
int menu()
{
int choice;
printf("A<-Manage Search->B\n");
printf("C<-Sort flight informations\n");
printf("D.bookTicketE.returnticket F.staticticket\n");
printf("G.Exit the Aircraft Booking System!\n");
printf(" -----What do you want to do :");
choice = getchar();
return choice;
}
int main()
{
int chose;
while(1)
{
chose=menu();
switch(chose)
{
case 'A':
manageflight();
break;
case 'B':
flightsearch();
break;
case 'C':
sortinformation();
break;
case 'D':
flightbook();
break;
case 'E':
flightdishonnor();
break;
case 'F':
flightstatic();
break;
case 'G':
return 0;
default:
printf("\n--input error !--\n");
}
}
return 0;
}
- 6楼网友:一袍清酒付
- 2021-03-31 10:22
是属于函数的嵌套吗?如果是,就直接在写外函数b时按照在主函数里调用外函数的形式调用a就行了啊。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯