筆記 C語言 型別 運算子與表示式

2021-09-17 23:32:31 字數 2750 閱讀 2603

變數和常量是程式處理的兩種基本資料物件。

宣告語句說明變數的名字及型別,也可以指定變數的初值。

運算子指定將要進行的操作。

表示式則把變數與常量組合起來生成新的值。

物件的型別決定該物件可取值的集合以及可以對該物件執行的操作。

變數名使用小寫字母,符號常量名全部使用大寫字母。下劃線「_」被看做是字母。所有關健字中的字元都必須小寫。

選擇的變數名要能夠盡量從字面上表達變數的用途,這樣做不容易引起混淆。區域性變數 一般使用較短的變數名(尤其是迴圈控制變數)

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 算術運...