C 基本語法(三)儲存類及運算子

2021-09-03 07:18:04 字數 3796 閱讀 3570

修飾區域性變數,會使函式呼叫之間保持區域性變數的值

修飾全域性變數時,會使變數的作用域限制在宣告它的檔案內

暫存器存在於cpu中,速度很快,數目有限,計算機做運算時,必須將資料讀入暫存器才能運算。

#include // 函式宣告 

void func(void);

static int count = 10; /* 全域性變數 */

int main()

return 0;

}// 函式定義

void func( void )

{ static int i = 5; // 區域性靜態變數

i++;

std::cout << "變數 i 為 " << i ;

std::cout << " , 變數 count 為 " << count << std::endl;

/*輸出:  (如果沒有static,則變數is始終為6)

變數 i 為 6 , 變數 count 為 9

變數 i 為 7 , 變數 count 為 8

變數 i 為 8 , 變數 count 為 7

變數 i 為 9 , 變數 count 為 6

變數 i 為 10 , 變數 count 為 5

變數 i 為 11 , 變數 count 為 4

變數 i 為 12 , 變數 count 為 3

變數 i 為 13 , 變數 count 為 2

變數 i 為 14 , 變數 count 為 1

變數 i 為 15 , 變數 count 為 0

*/

(算術運算子,關係運算子,邏輯運算子,賦值運算子,雜項運算子,位運算子。)

算術運算子:

假設變數 a 的值為 10,變數 b 的值為 20,則:

運算子描述例項+

把兩個運算元相加

a + b 將得到 30

-從第乙個運算元中減去第二個運算元

a - b 將得到 -10

*把兩個運算元相乘

a * b 將得到 200

/分子除以分母

b / a 將得到 2

%取模運算子,整除後的餘數

b % a 將得到 0

++自增運算子,整數值增加 1

a++ 將得到 11

--自減運算子,整數值減少 1

a-- 將得到 9

關係運算子:

假設變數 a 的值為 10,變數 b 的值為 20,則:

運算子描述

例項==

檢查兩個運算元的值是否相等,如果相等則條件為真。

(a == b) 不為真。

!=檢查兩個運算元的值是否相等,如果不相等則條件為真。

(a != b) 為真。

>

檢查左運算元的值是否大於右運算元的值,如果是則條件為真。

(a > b) 不為真。

<

檢查左運算元的值是否小於右運算元的值,如果是則條件為真。

(a < b) 為真。

>=

檢查左運算元的值是否大於或等於右運算元的值,如果是則條件為真。

(a >= b) 不為真。

<=

檢查左運算元的值是否小於或等於右運算元的值,如果是則條件為真。

(a <= b) 為真

邏輯運算子(條件判斷)

假設變數 a 的值為 1,變數 b 的值為 0,則:

運算子描述

例項&&

稱為邏輯與運算子。如果兩個運算元都非零,則條件為真。

(a && b) 為假。

||稱為邏輯或運算子。如果兩個運算元中有任意乙個非零,則條件為真。

(a || b) 為真。

!稱為邏輯非運算子。用來逆轉運算元的邏輯狀態。如果條件為真則邏輯非運算子將使其為假。

!(a && b) 為真。

賦值運算子:

運算子描述例項

=簡單的賦值運算子,把右邊運算元的值賦給左邊運算元

c = a + b 將把 a + b 的值賦給 c

+=加且賦值運算子,把右邊運算元加上左邊運算元的結果賦值給左邊運算元

c += a 相當於 c = c + a

-=減且賦值運算子,把左邊運算元減去右邊運算元的結果賦值給左邊運算元

c -= a 相當於 c = c - a

*=乘且賦值運算子,把右邊運算元乘以左邊運算元的結果賦值給左邊運算元

c *= a 相當於 c = c * a

/=除且賦值運算子,把左邊運算元除以右邊運算元的結果賦值給左邊運算元

c /= a 相當於 c = c / a

%=求模且賦值運算子,求兩個運算元的模賦值給左邊運算元

c %= a 相當於 c = c % a

<<=

左移且賦值運算子

c <<= 2 等同於 c = c << 2

>>=

右移且賦值運算子

c >>= 2 等同於 c = c >> 2

&=按位與且賦值運算子

c &= 2 等同於 c = c & 2

^=按位異或且賦值運算子

c ^= 2 等同於 c = c ^ 2

|=按位或且賦值運算子

c |= 2 等同於 c = c | 2

雜項運算子

運算子描述

sizeof

sizeof 運算子   返回變數的大小。例如,sizeof(a) 將返回 4,其中 a 是整數。

condition ? x : y

條件運算子     如果 condition 為真 ? 則值為 x : 否則值為 y。

,逗號運算子      會順序執行一系列運算。整個逗號表示式的值是以逗號分隔的列表中的最後乙個表示式的值。

.(點)和 ->(箭頭)

成員運算子       用於引用類、結構和共用體的成員。

cast

強制轉換運算子     把一種資料型別轉換為另一種資料型別。例如,int(2.2000) 將返回 2。

&指標運算子 &      返回變數的位址。例如&a; 將給出變數的實際位址。

*指標運算子 *      指向乙個變數。例如,*var; 將指向變數 var。

位運算子;  作用於位,並逐位執行操作

假設變數 a 的值為 60,變數 b 的值為 13,則:

運算子描述例項&

如果同時存在於兩個運算元中,二進位制 and 運算子複製一位到結果中。

(a & b) 將得到 12,即為 0000 1100

|如果存在於任一運算元中,二進位制 or 運算子複製一位到結果中。

(a | b) 將得到 61,即為 0011 1101

^如果存在於其中乙個運算元中但不同時存在於兩個運算元中,二進位制異或運算子複製一位到結果中。

(a ^ b) 將得到 49,即為 0011 0001

~二進位制補碼運算子是一元運算子,具有"翻轉"位效果,即0變成1,1變成0。

(~a ) 將得到 -61,即為 1100 0011,乙個有符號二進位制數的補碼形式。

<<

二進位制左移運算子。左運算元的值向左移動右運算元指定的位數。

a << 2 將得到 240,即為 1111 0000

>>

二進位制右移運算子。左運算元的值向右移動右運算元指定的位數。

a >> 2 將得到 15,即為 0000 1111

C 儲存類與運算子

儲存類定義 c 程式中變數 函式的範圍 可見性 和生命週期 auto儲存類 auto 儲存類是所有區域性變數預設的儲存類。register 儲存類用於定義可能儲存在暫存器中的變數,這用於定義經常訪問的如計數器 即定義全域性變數 static用於定義能在程式執行過程中都有效的變數,而不必使編譯器在每次...

C 儲存類與運算子

儲存類定義 c 程式中變數 函式的範圍 可見性 和生命週期 auto儲存類 auto 儲存類是所有區域性變數預設的儲存類。register 儲存類用於定義可能儲存在暫存器中的變數,這用於定義經常訪問的如計數器 即定義全域性變數 static用於定義能在程式執行過程中都有效的變數,而不必使編譯器在每次...

Swift語法 基本運算子

1 賦值運算子 與 c 語言和 objective c 不同,swift 的賦值操作並不返回任何值。所以以下 更優化了.if x y算術運算子 2 與 c 語言和 objective c 不同的是,swift 預設情況下不允許在數值運算中出現溢位情況。但是你可以使用 sw ift 的溢位運算子來實現...