标题:请问下面代码中的switch后面为什么可以带字符(a)?括号里的表达式不是应该 ...
只看楼主
zhangchen240
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-1-23
结帖率:0
已结贴  问题点数:20 回复次数:2 
请问下面代码中的switch后面为什么可以带字符(a)?括号里的表达式不是应该是整型变量吗??
#include "stdio.h"
#include "math.h"
void main()
{float data1,data2;
char a;
printf("input:");
scanf("%f,%f,%c",&data1,&data2,&a);
switch (a)
{case '+':printf("%f%c%f=%f\n",data1,a,data2,data1+data2);break;
case '-':printf("%f%c%f=%f\n",data1,a,data2,data1-data2);break;
case '*':printf("%f%c%f=%f\n",data1,a,data2,data1*data2);break;
case '/':
{
if (data2==0)
{
printf("不存在\n");
}
else
{
printf("%f%c%f=%f\n",data1,a,data2,data1/data2);
}
}break;
default:printf("无结果\n");
}
}
搜索更多相关主题的帖子: switch 变量 printf case break 
2018-01-23 23:26
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
char类型也可以看作是整型,就是字符的ASCII码。
如getchar()的返回值是int型,getchar函数的返回值是输入字符的ASCII码。
2018-01-24 04:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
看看标准是怎么说的?switch( 任何integer类型的表达式 )

integer类型又是什么呢,标准说其包含 char, signed integer types, unsigned integer types, enumerated types 四种。
signed integer types 包含 signed char, short, int, long, long long
unsigned integer types 包含 _Bool, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long
2018-01-24 09:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484419-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014932 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved