我怎么能比较一个char和一个int?

艾伦·斯塔克

我对C不太熟悉,所以我对语言的类型安全有些困惑。

例如。

char* my_pointer;

my_pointer = malloc(sizeof(char));

if (*my_pointer == 0b0000)
{
    // this might be true or false, doesn't matter
}

代码如何运行?为什么不炸开*my_pointer == 0b0000呢?

不应该*my_pointer返回一个字符吗?

因此,从技术上讲,不仅*my_pointer == 'a'应该能够工作吗?

蚂蚁

C语言没有带有某些孤立的“仅字符”语义的专用“字符”类型。char是C中的另一个整数类型,就像short或一样int它恰好是最小的整数类型。您可以使用char与使用任何其他整数类型相同的方式进行整数算术计算(尽管使用char该角色不是一个好主意)。

在进行比较时charint您只是在比较两个整数值。没什么不寻常的。

整数提升规则说先char隐式转换为int(前提是范围适合),然后int比较两个值。

您的*my_pointer == 'a'示例实际上与原始示例没有什么不同。在C中'a'是一个字符常量,它表示type的整数值int也就是说'a'int因为它已经是所以甚至不需要升级int

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我怎么能写一个测试用例来比较无穷的价值?

我怎么能一个字符转换成int类型的Java?

当我自动提交从它创建一个无限循环我怎么能停止

我怎么能转换一个for循环进入物流和中间分手呢?

我怎么能一个函数内的变量的值传递给一个命令?

我怎么能一个键排序字典中的值?

我怎么能一个数组转换成JSON(JAVA)

我怎么能只模拟一个非空值?

我怎么能存储在一个可编辑的DIV插入位置?

我怎么能如果不存在映射可选另一个可选?

获得一个表元素的旧值,我怎么能得到新的价值?

我怎么能执行一个方法每隔X秒在Javaÿ时间

我怎么能压扁一个List <名单<名单<字符串>>>

我怎么能画上一个标签多类?(JAVA)

提醒每个新蜡烛我怎么能只有一个提醒

我怎么能扎根到一个没有名字的文件夹?

我怎么能指定匹配字符串和长到一个类型?

我怎么能一个ArrayList的最后3个元素添加到不同的ArrayList?

我怎么能自动地将一个文件夹叫到我的网址

我怎么能让一个表单标签执行 2 个动作?

我怎么能长时间阅读Java作为无符号,它的值存储在一个BigInteger?

在CAS我怎么能限制只能访问一个服务,如果协议尚未接受?

我怎么能保存一个字符串字节而不丢失信息?

我怎么能单独天转换成大熊猫的一个日期科拉姆

我怎么能typedef一个绑定的成员方法,然后使用该类型作为模板参数?

我怎么能确定一个字符串中只包含一个数字吗?

我怎么能指望了多少男性和女性在一个文本文件?

C - 你怎么能创建一个全局数组,谁的大小是一个函数的整数结果?

Rally SDK 2 - 给定一个故事 A 和一个故事 B,由于 Javascript API,我怎么能说 B 是 A 的继承者?