我在一张SNS相册中看到了这两个陈述,标题是"我见过的最优雅的输出方式"等等.
以下是两个陈述:
printf("%d%c", a, " \n"[i==n]);
puts("YES\0No"+condition * 4);
Run Code Online (Sandbox Code Playgroud)
我不知道他们在做什么以及他们是如何工作的.有人会向我解释一下吗?谢谢.
" \n"[i==n]获取表达式i==n,该表达式的计算结果为0或1,并将其用作数组的索引" \n",获取' '或者'\n'.
"YES\0N0"+condition * 4获取数组"YES\0N0",当在大多数表达式(包括此表达式)中使用时,该数组"衰减"到指向其第一个元素的指针,并添加condition * 4到此指针.如果condition为1,则产生指向'N'开头的指针"N0".
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |