我无法理解这段代码,它为vals [i]设置了值。
for(int i = 0; i < 100; i++)
vals[i] = (i%4==1)*255;
非常感谢任何理解这一点的帮助!
答案 0 :(得分:0)
感谢那些发表评论的人。
我总结了这段代码
(i % 4 == 1) * 255
如果不使用关键字,几乎就是内联。
以下是我的测试说明,以防有可能帮助其他人。
int main()
{
int size = 50;
for (int i = 0; i < size; i++)
{
int val = i % 4 == 1 * 255;
printf("%d) %d\n", i, val);
// Output: Zero for every index
}
printf("\n--------------------\n"); // just for some spacing for readability
for (int i = 0; i < size; i++)
{
int val = (i % 4 == 1) * 255;
printf("%d) %d\n", i, val);
// Output...
// 1) 255
// 5) 255
// 9) 255
//...
}
printf("\n--------------------\n"); // just for some spacing for readability
// This is a bit easier for me to understand, and it gives the same results as above
for (int i = 0; i < size; i++)
{
int val = 0;
if (i % 4 == 1)
val = 255;
printf("%d) %d\n", i, val);
// Output...
// 1) 255
// 5) 255
// 9) 255
//...
}
return 0;
}