此代码生成一个4阶Sierpinski三角形的ASCII表示,我不知道最后printf
是如何工作的。如果有人能向我解释,我将非常感激。
#include <stdio.h>
#define SIZE (1 << 4)
int main()
{
int x, y, i;
for (y = SIZE - 1; y >= 0; y--, putchar('\n')) {
for (i = 0; i < y; i++) putchar(' ');
for (x = 0; x + y < SIZE; x++)
printf((x & y) ? " " : "* ");
}
return 0;
}
答案 0 :(得分:1)
?
是三元运算符。它评估左边的表达式,如果它是非零(真),它选择冒号:
之前的第一个值,如果它为零(假),则选择第二个。
答案 1 :(得分:1)
@media
...
.content {
font-size: 19px;
line-height: 1.8;
}
或多或少等同于:
printf((x & y) ? " " : "* ");