这是一个整数数组:
int values[] = { 75, '*', 5,'-' };
for(i=0 ; i<size ; i++){
// Here
}
如何检查 values[i]
是整数还是运算??
也许这个值等于一个操作的Ascii,在这种情况下如何处理??
最佳答案
你不能。对于编译器而言,常量42
和'*'
是一回事。在编译后的目标代码中,它们都表示为整数 42。
如果您需要区分整数和字符,请使用指示值类型的 bool 标志或枚举,或者将整数和字符保存在单独的数组中。
请注意,在 C++ 中,但在 C 中,不是,存在细微差别:42
的类型为 int
,而 '*'
的类型为 char
,因此您可以使用重载函数或模板来区分这一事实。
关于检查它是一个字符还是一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160468/