将输入的整数更改为定义的常量值

时间:2015-03-16 10:18:36

标签: c

我是编程新手(很新,很抱歉,如果这是一个愚蠢的问题),我想知道如何将变量的int更改为C中的常量值,例如如果我要将一个月(以数字形式)输入变量' month',那么函数convertMonthToDays可以说将输入的整数更改为相应的常量。所以3等于MARCH,这是一个定义为30的常数。

谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用const int代替#define。 const限定符保证在程序的生命周期内不会更改该值。

现在,对于您的特定示例,您可以使用12个const int值的数组来定义一年中的天数:

const int daysInAMonth[12] = {30, 28, 31, 30...};

这样您就可以使用索引来检索该月的天数。

另一方面,这不是获得月份天数的最优雅方式,因为您仍然存在闰年问题。但我只回答了你最初提出的问题。

希望它有所帮助...

答案 1 :(得分:0)

常量是C(和大多数其他语言)中的编译时想法。你能做的最好的事情是在你的情况下分配一个可能是全局的变量,并保证不会在“批准的上下文”中更改它,就像你获得用户输入一样。

这很丑陋(没有人喜欢全局变量),但它有效。在面向对象语言中,您可以将月变量与使用的代码捆绑在一起,并且可以拒绝访问该“成员变量”。

但在C语言中,除了编译时,你就是荣誉系统。

下一个最好的可能性(实际上,更好的方法,但更远离你的要求)将是从函数返回你的“一个月内的日期”值。由于您无法在运行时重写该函数,因此无法更改它返回的结果。