Oxd*_*eef 6 c string boolean plural
我很惊讶string plus boolean有类似三元操作的效果:
int apple = 2;
printf("apple%s\n", "s" + (apple <= 1));
Run Code Online (Sandbox Code Playgroud)
如果apple <= 1,它将打印苹果.为什么这样做?
Dan*_*her 11
因为条件的计算结果为0或1,并且字符串"s"在0终止符之前只包含一个字符.因此,"s" + bool将评估"s"if 的地址是否bool为false,以及后面的一个字符,如果为0则终止0地址的地址.
这是一个很酷的黑客,但不要认真使用这样的代码.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |