目錄
1. 運算符
1.1 位運算符
1.1.1 位運算 ~
1.1.2?位邏輯與 &
?1.1.3 位邏輯或 |
1.1.4 位邏輯異或 ^
1.1.5 位移位運算
1.1.6 將無符號位的某位快速置?1
1.2 三目運算符
?1.3 逗號運算符
?1.4 運算符優先級
?2. 輸出
2.1 字符輸出函數
2.2 格式輸出函數
2.3 字符串輸出函數
?3. 輸入
3.1 字符輸入函數
3.2 格式輸入函數
?3.3 垃圾遺留
?3.4 字符串輸入函數
1. 運算符
算術運算符? 關系運算符? 邏輯運算符老生常談
需要記住:
算術運算符 :float 與 double 數據類型的變量不可以進行取余操作
邏輯運算符:&&(與)都為真才為真(數字 1 表示真,0 表示假);|| (或)有一個為真便為真
1.1 位運算符
嵌入式開發中使用 C 語言的位運算符
其運算效率比算術運算符的效率要高;
涉及硬件時離不開寄存器,可以借助位運算對數據進行修改
1.1.1 位運算 ~
以下測試中,char 聲明為無符號型,取反時符號位也要參與計算
1.1.2?位邏輯與 &
?1.1.3 位邏輯或 |
1.1.4 位邏輯異或 ^
1.1.5 位移位運算
1.1.6 將無符號位的某位快速置?1
1.2 三目運算符
表達式1 ??表達式 2 :表達式 3
即表達式 1 成立,執行?表達式 2 ,表達式 1 不成立,執行?表達式 3
?1.3 逗號運算符
作用:按從左到右的順序依次執行每個子表達式,并返回最后一個子表達式的值。
?1.4 運算符優先級
?2. 輸出
2.1 字符輸出函數
格式:putchar( c )
c 為字符常量,變量或表達式
2.2 格式輸出函數
格式:printf ( “%m.nd/x/o”,a?)
按指定格式向顯示器輸出數據
?%md:m < 該數的位數,按實際輸出;若大于,輸出數前面有空格;
%m.nf:保留小數點后 n 位,域寬為 m ;
?0:左邊空格補 0 ;
+:有符號的正整數前顯示正號;
2.3 字符串輸出函數
格式:puts ()
說明:使用其會自動換行
?3. 輸入
3.1 字符輸入函數
格式:getChar( ) ;
從鍵盤讀一個字符,返回讀取的代碼值,出錯或結束返回 -1
3.2 格式輸入函數
格式:scanf (”格式控制串“,地址表 ) ;
scanf 使用時記得使用取地址符:&
以空格作為字符串輸入結束的標志
?輸入十六進制,輸出 十進制;
?獲取 scanf 輸入數據的個數:
?scanf 中 %md 的使用:自動劃分輸入的數據
?抑制符:*
?字符型變量輸入:用 “ %c ” 格式符時,空格和轉移字符作為有效字符輸入
(對于整數:輸入時按空格,tab 鍵,回車都不影響最后的輸出)
?3.3 垃圾遺留
如下,輸入整數之后,遺留的“回車”會輸入到 scanf ("%c",&x) ,成為垃圾符號
影響下一次字符的輸入
?方法一:添加?getchar( ) ;
?方法二:scanf ("%c",&x) 格式串加上空格或者 %*c;
?3.4 字符串輸入函數
一般使用字符數組存儲字符串
格式:gets( );
輸入串長度應小于字符數組長度(字符串默認以" \0" 結尾)
?不會以空格作為輸入結束的標志
?若用 scanf( )輸入字符串,不能有空格
空格相當于結束符
若要輸入空格,可以使用 for 循環