C语言数据类型选型:King教材习题7.06最小适配类型解析
King《C语言程序设计:现代方法》习题7.06解答
题干
请从
char、short、int、long四类数据类型中,为以下每类数据指定能够存储其值的最小类型:
(a) 一个月的天数
(b) 一年的天数
(c) 一天的分钟数
(d) 一天的秒数
推导前提(C标准规定的各类型最小取值范围)
char:有符号场景下最小范围为-128127,无符号场景下为0255,最大值至少为127short:最小范围为-32768~32767,最大值至少为32767int:取值范围至少与short一致,主流32/64位系统下通常为-231~231-1long:最小范围为-231~231-1,最大值至少为2147483647
各选项推导结果
- (a) 一个月的天数最大值为31,远小于
char的最小最大值127,因此最小适用类型为char - (b) 一年的天数闰年最大值为366,超出
char的最大值上限,小于short的最小最大值32767,因此最小适用类型为short - (c) 一天的分钟数常规值为24×60=1440,算上闰秒调整的极值约为1500,仍小于32767,因此最小适用类型为short
- (d) 一天的秒数常规值为24×60×60=86400,算上闰秒调整的极值约为86760,超出
short的最大值32767,因此最小适用类型为long
内容的提问来源于stack exchange,提问作者user8819932
相关产品推荐
相关产品推荐

