const string加上布尔值在C中复数
发布时间:2020-12-16 03:33:48 所属栏目:百科 来源:网络整理
导读:我很惊讶string plus boolean有类似三元操作的效果: int apple = 2; printf("apple%sn","s" + (apple = 1)); 如果apple = 1,它将打印苹果.为什么这样做? 解决方法 因为条件的计算结果为0或1,而字符串“s”在0终止符之前只包含一个字符.因此,如果bool为fal
我很惊讶string plus boolean有类似三元操作的效果:
int apple = 2; printf("apple%sn","s" + (apple <= 1)); 如果apple< = 1,它将打印苹果.为什么这样做? 解决方法
因为条件的计算结果为0或1,而字符串“s”在0终止符之前只包含一个字符.因此,如果bool为false,则“s”bool将评估为“s”的地址,则将其评估为一个字符,如果为真,则为0-terminator的地址.
这是一个很酷的黑客,但不要认真使用这样的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |