c語言第三節課
(1)、“?:“:C語言中唯一的一個三目運算子,它是對第一個表示式作真/假檢測,然後根據結果返回另外兩個表示式中的一個。
(2)、“,“:我只會取到我最後一個值。整個表示式的結果,是最後一個值。
2、常量:
(1)、不能改變它的值。
12.34e3指的是12.34*10^3
(2)、字串常量:
A、普通字元:'a';"abc"
B、轉義字元:
(a)、'\0':是 c/c++ 語言中的字串結束符,在ASCII字符集中對應空字元NULL,數值為0。其作用是識別字符串,簡化字串處理過程。在使用過程中要為其分配記憶體空間,但不計入字串長度。
(b)、'\n':回車.
(c)、'\t':跳格(移至下一列)
(d)、'\\':反斜槓
(e)、'\xa':十六進位制的數
(f)、巨集,例:#define PI 3.14
(3)、常變數:Int main ()
{
Int a;//a、區域性變數(函式內定義的變數) 必須初始化;b、隨機值
const int a;//const a、修飾的變數,常變數;b、不能修改它的值c、定義的同時 進行初始化
return 0
}
3、查含義
%i和%d都是表示有符號十進位制整數
%i可以自動將輸入的八進位制(或者十六進位制)轉換為十進位制,而%d則不會進行轉換。
%o 無符號8進位制整數
%u 無符號10進位制整數%x 無符號的16進位制數字,並以小寫abcdef表示
%X 無符號的16進位制數字,並以大寫ABCDEF表示
%F/f 浮點數
%E/e 用科學表示格式的浮點數
%g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 G 同g格式,但表示為指數
%c 單個字元
%s 字串
4、作業:
(1)、為什麼switch內不能用float和double?
答:浮點數使用對數形式儲存的,所以要比較浮點數相等是不可能的。switch語句內只能使用int或者char。
(2)、switch與if的區別,什麼時候用if?什麼時候用switch?
switch 是多分支選擇語句,而 if 語句只有兩個分支可供選擇。雖然可以用巢狀的 if 語句來實現多分支選擇,但那樣的程式冗長難讀。這是 switch 語句存在的理由。
區別:兩者只有在要求【規範編碼】時才看出來。從語法上,你完全可以把switch用多個if來替換,但是這樣付出的代價就是程式可讀性差,在規範編碼中不提倡。
(3)、if與switch誰的效率高?
if else 一般表示兩個分支或是巢狀表示少量的分支但如果分支很多的話,還是 switch case 的效率高一點
(4)、const與define的區別?
C 語言可以用 const 來定義常量,也可以用 #define 來定義常量。但是前者比後 者有更多的優點:
(1) const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安 全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會 產生意料不到的錯誤(邊際效應) 。
(2) 有些整合化的除錯工具可以對 const 常量進行除錯,但是不能對巨集常量進行除錯。
5、switch語句的用法:
(1)、每個 case 語句的結尾絕對不要忘了加 break,否則將導致多個分支重疊(除非 有意使多個分支重疊)。
(2)、必須使用 default 分支。即使程式真的不需要 default 處理,也應該保留 語句:
default:
break;
這樣做並非畫蛇添足,可以避免讓人誤以為你忘了 default 處理。