變數和常量是程式處理的兩種基本資料物件。
宣告語句說明變數的名字及型別,也可以指定變數的初值。
運算子指定將要進行的操作。
表示式則把變數與常量組合起來生成新的值。
物件的型別決定該物件可取值的集合以及可以對該物件執行的操作。
變數名使用小寫字母,符號常量名全部使用大寫字母。下劃線「_」被看做是字母。所有關健字中的字元都必須小寫。
選擇的變數名要能夠盡量從字面上表達變數的用途,這樣做不容易引起混淆。區域性變數 一般使用較短的變數名(尤其是迴圈控制變數)
c 語言只提供了下列幾種基本資料型別:
在上述這種型別的宣告中,關鍵字 int 可以省略。通常很多人也習慣這麼做。
ansi c 語言中的全部轉義字元序列如下所示:
符號意義
\a響鈴符
\\反斜槓
\b回退符
\?問號
\f換頁符
\』單引號
\n換行符
\"雙引號
\r回車符
\ooo
八進位制數
\t橫向製表符
\xhh
十六進製制數
\v縱向製表符
字元常量
乙個字元常量是乙個整數,書寫時將乙個字元括在單引號中,如,『x』。字元在機器字元 集中的數值就是字元常量的值。
字元常量』\0』表示值為 0 的字元,也就是空字元(null) 。我們通常用』\0』的形式代替 0, 以強調某些表示式的字元屬性,但其數字值為 0。
常量表示式是僅僅只包含常量的表示式。這種表示式在編譯時求值,而不在執行時求值。 它可以出現在常量可以出現的任何位置。
字串常量
字串常量也叫字串字面值,是用雙引號括起來的 0 個或多個字元組成的字串行。
我們應該搞清楚字元常量與僅包含乙個字元的字串之間的區別:『x』與"x"是不同的。 前者是乙個整數,其值是字母 x 在機器字符集中對應的數值(內部表示值); 後 者是乙個包含 乙個字元(即字母 x)以及乙個結束符』\0』的字元陣列。
列舉常量(enum)
列舉常量是另外一種型別的常量。列舉是乙個常量整型值的列表。
在沒有顯式說明的情況下,enum 型別中第乙個列舉名的值為 0,第二個為 1,依此類推。如果只指定了部分列舉名的值,那麼未指定值的列舉名的值將依著最後乙個指定值向後遞增,不同列舉中的名字必須互不相同。同一列舉中不同的名字可以具有相同的值。
輸出結果#include #include void main() ;
printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec);
system("pause");
}
1,2,3,4,5,6,7,8,9,10,11,12強制型別轉換請按任意鍵繼續. . .
(型別名稱)表示式
我們可以這樣來理解強制型別轉換的準確含義:在上述語句中,表示式首先被賦值給型別名 指定的型別的某個變數,然後再用該變數替換上述整條語句
強制型別轉換符和一元運算子的運算等級是一樣的
++n是先把n加上1,然後使用n
n++是先使用n,然後給n加1
符號名含義
&按位與(and)
|按位或(or)
^按位異或(xor)
<<
左移》右移~
按位求反(一元運算子)
x *= y + 1
的含義是:
x = x * (y + 1)
而不是x = x * y + 1
賦值表示式的型別是它的左運算元的型別,其值是賦值操作完 成後的值
條件表示式(使用三元運算子「? :」)提 供了另外一種方法編寫這段程式及類似的**段,在表示式
expr1 ? expr2 : expr3
中,首先計算 expr1,如果其值不等於 0(為真),則計算 expr2 的值,並以該值作為條件 表示式的值,否則計算 expr3 的值,並以該值作為條件表示式的值。expr2 與 expr3 中只 能有乙個表示式被計算。
z = (a > b) ? a : b; /* z = max(a, b) 求z的最大值*/
應該注意,條件表示式實際上就是一種表示式,它可以用在其它表示式可以使用的任何 地方;如果 expr2 與 expr3 的型別不同,結果的型別將由本章前面討論的轉換規則決定
運算子的優先順序與結合性
運算子結合性( ) [ ] ->.從左至右
! ~ ++ - - + - * (type) sizeof
從右至左
* / %
從左至右
+ -從左至右
<< >>
從左至右
< <= > >=
從左至右
== !=
從左至右
&從左至右
^從左至右
|從左至右
&&從左至右
||從左至右
? :
從左至右
= += - = *= /= %= &= ^= |= <<= >>=
從右至左
,從右至左
注:一元運算子+、-、&與*比相應的二元運算子+、-、&與*的優先順序高。
注意,位運算子&、^與|的優先順序比運算子==與!=的低。
C語言 型別,運算子與表示式
c語言的變數名有些限制 必須以字母或下劃線開頭 變數命名區別大小寫,a 和 a 是兩個不同的變數 不能使用c語言關鍵字作為變數,如,if,else,int 選擇關鍵字建議見其名,只其意,這樣對程式的可維護性提供便利 下面的示例 int a 合法的命名 int a 合法的命名,與a不是乙個變數 int...
C語言運算子與表示式
運算子是一種向變異程式說明乙個特定的數學或邏輯運算的符號。主要有三大類 算術運算子 關係運算與邏輯運算子 按位運算子。除此之外,還有一些用於完成特殊任務的運算,如賦值運算子 條件運算子 逗號運算子等。c語言的運算子歸納如下 1 算術運算子 2 關係運算子 3 邏輯運算子 4 位運算子 按位與 運算子...
C語言 運算子與表示式
1.運算子 用於進行某種運算的符號 通過涉及到的數目分為單目運算子 i 雙目運算子 三目運算子 判斷 a b 在c語言中a b 是不等價與 b a 的,ru i i j 與 i j i c語言運算優先順序,單目運算子 算術運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子 逗號運算子 1 算術運...