這行代碼是什么意思,我在這段代碼中找到了這個:
void simple_print_buffer(char *buffer, unsigned int size)
{
unsigned int i;
i = 0;
while (i < size)
{
if (i % 10)
{
printf(" ");
}
if (!(i % 10) && i)
{
printf("\n");
}
printf("0xx", buffer[i]);
i ;
}
printf("\n");
}
uj5u.com熱心網友回復:
i % 10表示i modulo 10或計算整數的最后一位i。然后運算子優先級告訴您!接下來應用的是not,在這種情況下,如果最后一個數字是not 0。 &&意味著and如果左側(已經討論過)和右側都是 . 則執行 if 陳述句true。右邊的i意思i是not 0。
while 回圈中的 if 陳述句可以這樣重構:
if(i % 10) {
printf(" ");
} else if(i) {
printf("\n");
}
或者簡單地說:
if(i) print("%c", i % 10 ? " " : "\n");
此外,使用for回圈而不是 a while,因為回圈遍歷索引i,因此函式變為:
void simple_print_buffer(char *buffer, unsigned size) {
for(unsigned i = 0; i < size; i ) {
if(i) print("%c", i % 10 ? " " : "\n");
printf("0xx", buffer[i]);
}
printf("\n");
}
uj5u.com熱心網友回復:
!conditioncondition為假或 0時為真。
第一個條件等于(i % 10) == 0。第二個條件等于i != 0。
&&表示if當兩個條件都為真時執行該子句。
uj5u.com熱心網友回復:
我認為其他答案已經解釋了它,但這段代碼可能有助于理解:
#include <stdio.h>
int main()
{
unsigned int i;
for(i = 0; i<50; i )
{
printf("i: %d i mod 10: %d !(i mod 10): %d !(i mod 10) && i: %d \n",
i, i%10, !(i%10), !(i%10)&& i);
}
return 0;
}
輸出:
i: 0 i mod 10: 0 !(i mod 10): 1 !(i mod 10) && i: 0
i: 1 i mod 10: 1 !(i mod 10): 0 !(i mod 10) && i: 0
i: 2 i mod 10: 2 !(i mod 10): 0 !(i mod 10) && i: 0
i: 3 i mod 10: 3 !(i mod 10): 0 !(i mod 10) && i: 0
i: 4 i mod 10: 4 !(i mod 10): 0 !(i mod 10) && i: 0
i: 5 i mod 10: 5 !(i mod 10): 0 !(i mod 10) && i: 0
i: 6 i mod 10: 6 !(i mod 10): 0 !(i mod 10) && i: 0
i: 7 i mod 10: 7 !(i mod 10): 0 !(i mod 10) && i: 0
i: 8 i mod 10: 8 !(i mod 10): 0 !(i mod 10) && i: 0
i: 9 i mod 10: 9 !(i mod 10): 0 !(i mod 10) && i: 0
i: 10 i mod 10: 0 !(i mod 10): 1 !(i mod 10) && i: 1
i: 11 i mod 10: 1 !(i mod 10): 0 !(i mod 10) && i: 0
i: 12 i mod 10: 2 !(i mod 10): 0 !(i mod 10) && i: 0
i: 13 i mod 10: 3 !(i mod 10): 0 !(i mod 10) && i: 0
i: 14 i mod 10: 4 !(i mod 10): 0 !(i mod 10) && i: 0
i: 15 i mod 10: 5 !(i mod 10): 0 !(i mod 10) && i: 0
i: 16 i mod 10: 6 !(i mod 10): 0 !(i mod 10) && i: 0
i: 17 i mod 10: 7 !(i mod 10): 0 !(i mod 10) && i: 0
i: 18 i mod 10: 8 !(i mod 10): 0 !(i mod 10) && i: 0
i: 19 i mod 10: 9 !(i mod 10): 0 !(i mod 10) && i: 0
i: 20 i mod 10: 0 !(i mod 10): 1 !(i mod 10) && i: 1
i: 21 i mod 10: 1 !(i mod 10): 0 !(i mod 10) && i: 0
i: 22 i mod 10: 2 !(i mod 10): 0 !(i mod 10) && i: 0
i: 23 i mod 10: 3 !(i mod 10): 0 !(i mod 10) && i: 0
i: 24 i mod 10: 4 !(i mod 10): 0 !(i mod 10) && i: 0
i: 25 i mod 10: 5 !(i mod 10): 0 !(i mod 10) && i: 0
i: 26 i mod 10: 6 !(i mod 10): 0 !(i mod 10) && i: 0
i: 27 i mod 10: 7 !(i mod 10): 0 !(i mod 10) && i: 0
i: 28 i mod 10: 8 !(i mod 10): 0 !(i mod 10) && i: 0
i: 29 i mod 10: 9 !(i mod 10): 0 !(i mod 10) && i: 0
i: 30 i mod 10: 0 !(i mod 10): 1 !(i mod 10) && i: 1
i: 31 i mod 10: 1 !(i mod 10): 0 !(i mod 10) && i: 0
i: 32 i mod 10: 2 !(i mod 10): 0 !(i mod 10) && i: 0
i: 33 i mod 10: 3 !(i mod 10): 0 !(i mod 10) && i: 0
i: 34 i mod 10: 4 !(i mod 10): 0 !(i mod 10) && i: 0
i: 35 i mod 10: 5 !(i mod 10): 0 !(i mod 10) && i: 0
i: 36 i mod 10: 6 !(i mod 10): 0 !(i mod 10) && i: 0
i: 37 i mod 10: 7 !(i mod 10): 0 !(i mod 10) && i: 0
i: 38 i mod 10: 8 !(i mod 10): 0 !(i mod 10) && i: 0
i: 39 i mod 10: 9 !(i mod 10): 0 !(i mod 10) && i: 0
i: 40 i mod 10: 0 !(i mod 10): 1 !(i mod 10) && i: 1
i: 41 i mod 10: 1 !(i mod 10): 0 !(i mod 10) && i: 0
i: 42 i mod 10: 2 !(i mod 10): 0 !(i mod 10) && i: 0
i: 43 i mod 10: 3 !(i mod 10): 0 !(i mod 10) && i: 0
i: 44 i mod 10: 4 !(i mod 10): 0 !(i mod 10) && i: 0
i: 45 i mod 10: 5 !(i mod 10): 0 !(i mod 10) && i: 0
i: 46 i mod 10: 6 !(i mod 10): 0 !(i mod 10) && i: 0
i: 47 i mod 10: 7 !(i mod 10): 0 !(i mod 10) && i: 0
i: 48 i mod 10: 8 !(i mod 10): 0 !(i mod 10) && i: 0
i: 49 i mod 10: 9 !(i mod 10): 0 !(i mod 10) && i: 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/457390.html
標籤:C
