const string加上布尔值在C中复数

前端之家收集整理的这篇文章主要介绍了const string加上布尔值在C中复数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很惊讶string plus boolean有类似三元操作的效果
int apple = 2;                                                                      
printf("apple%s\n","s" + (apple <= 1));

如果apple< = 1,它将打印苹果.为什么这样做?

解决方法

因为条件的计算结果为0或1,而字符串“s”在0终止符之前只包含一个字符.因此,如果bool为false,则“s”bool将评估为“s”的地址,则将其评估为一个字符,如果为真,则为0-terminator的地址.

这是一个很酷的黑客,但不要认真使用这样的代码.

原文链接:https://www.f2er.com/c/111132.html

猜你在找的C&C++相关文章