为了账号安全,请及时绑定邮箱和手机立即绑定

请问void不是空函数吗??

请问void不是空函数吗??

C
梦里花落0921 2023-02-16 22:18:51
#include<stdio.h>int main(){void action1(int,int),action2(int,int);char ch;int a=15,b=23;ch=gether();switch(ch){case'a':case'A':action1(a,b);break;case'b':case'B':action2(a,b);break;default:putchar('\a');}return 0;viod action(intx,inty){printf("x+y=%d\n",x+y);}viod action2(intx,inty){printf("x*y=%d\n",x*y);}怎么组合才能形成:对两个整数进行运算,如果输入a或A,就调用action1函数,进行相加运算,如果输入b或B,进行相乘运算。而且 inta=15,b=23是什么意思?? void action1(int,int),action2(int,int);是什么意思?
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

  1. 首先switch语句,因为小写‘a’与小写‘b’都没有写“break;”因此会继续向下执行到下面判断语句的action语句再break;结束

  2. int a=15,b=23则定义了两个整形变量,执行到action1时会使他们相加输出,action2会使他们相乘输出

  3. 先回答你最后一个,void在函数名前是指无返回值的函数,所谓“返回值”是指执行完该函数后会返回一个类似于运算结果的值,而最开始写这么两个函数是对他们的提前声明,这是因为他们的内容在主函数后面,直接执行的话主函数不知道他们存在故无法调用,因此提前声明就好像是跟main函数打了声招呼:“嘿!我们两个在后面,用到的时候去后面找我们把!”,不这样写就把这两个函数定义在主函数之前也可以。

查看完整回答
反对 回复 2023-02-20
?
呼如林

TA贡献1798条经验 获得超3个赞

首先要把输入的ch转化一下统一的大小写,最简单应该是把ch直接减或者加一个ascii码的差值,然后switch里就变成
case'A':action1(a,b);break;
case'B':action2(a,b);break;
default:putchar('\a');
或者
case'a':action1(a,b);break;
case'b':action2(a,b);break;
default:putchar('\a');

int a=15,b=23;的意思是在main的栈里面分配两个储存单位a,b并赋值15,23
这里void 的意思是函数不返回任何有效值给主函数


查看完整回答
反对 回复 2023-02-20
  • 2 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信