利用flag作為變數狀態標識可精簡**,且有助於判斷情況,如判斷素數時的運用,就非常鮮明。
#include
intmain()
if(flag==1)
printf
("%d is not a sushu!\n"
,a);
else
printf
("%d is a sushu!\n"
,a);
}
這裡的flag=0代表為素數,flag=1代表不是素數。
同樣運用到字元陣列中剪下單詞也是不可少的部分。
列如把一句英文拆分成單個單詞換行輸出:
#include
#include
intmain()
else
if(in[i]
==' ')]
}for
(i=0
;i)puts
(in+p[i]);
}
執行結果:
**分析
首先定義flag=0為初始狀態表示正處理到空格處(非單詞)
flag=1則情況相反;
以下**為運用flag作為標誌的重要部分:
for
(i=0
;in[i]
!='\0'
;i++
)else
if(in[i]
==' ')]
}
為什麼在第一遍就把flag=0改變狀態為flag=1;
p[sum]=i為的是記錄單詞開始及單詞的字母個數與以下的輸出**相比較不難發現:
for
(i=0
;i)puts
(in+p[i]
);
puts(in+p[i]),編譯器在輸出時會把整個字串乙個乙個判斷輸出,p[i]這個數字陣列中的 i 為的是記錄整個字串有多少單詞,而至於p[0]p[1]…這種下標則是表示著乙個單詞有多少字母,就對應輸出多少個字元遇到』\0』會自動換行,由此就可以到達剪下一句英文的每個單詞的作用。 標誌暫存器(flag)
8086cpu的標誌暫存器有16位,其中儲存的資訊通常被稱為程式狀態字。其他暫存器時用來存放資料的,整個暫存器具有乙個含義。flag暫存器是按位起作用的,它的每一位都有專門的含義,記錄特定的資訊。8086cpu的flag暫存器的結構 1514 1312 111098 7654 3210 ofdf i...
常見的標誌暫存器FLAG的標誌位
進製標誌cf主要用來反映運算是否產生進製或借位。如果運算結果的最高位產生了乙個進製或借位,那麼,其值為1,否則其值為0。使用該標誌位的情況有 多字 位元組 數的加減運算,無符號數的大小比較運算,移位操作,字 位元組 之間移位,專門改變cf值的指令等。奇偶標誌pf用於反映運算結果中 1 的個數的奇偶性...
RT thread核心物件標誌flag總結
一 核心標誌flag 在核心物件控制塊中有乙個標誌成員flag rt uint8 t flag 這個標誌在不同有核心物件中具有不同的含義。rt thread的核心物件有定時器 執行緒 訊號量 互斥鎖 事件 郵箱 訊息佇列 記憶體堆 裝置 模組,這些核心物件都繼承了核心物件的成員,其中也就包含了核心物...