元小白(猿小白)高階日記 十一(操作符)

2021-09-17 08:45:09 字數 3271 閱讀 5178

(除了自增自減操作符以外,只能通過賦值操作符更改被運算元的值)

**一、算數操作符:**加 + 、減 - 、乘 * 、除 / 、取餘 %

(注:1、除了%操作符只能作用於整數以外,其他的操作符可以作用於整數和浮點數。

2、對於/操作符,如果兩個數都是整數,執行整數除法,只要有浮點數就執行浮點數除法。)

**二、移位操作符:**左移操作符 << 、右移操作符》。(以二進位制位)

(注:右移操作符:

1、無符號數執行邏輯移位,左邊用零填充,右邊捨棄;

2、有符號數執行算術移位,左邊填充符號位,右邊捨棄。

左移操作符:

1、右邊補零。)

例如:int num=-1;

num>>1;//意思為將num右移一位。

例如:

#define _crt_secure_no_warnings 1

#includeint main()

**三、位操作符:**按位與&、按位或|、按位異或^、按位取反~(運算元必須是整數,對運算元的二進位制位進行操作)

例如:

#define _crt_secure_no_warnings 1

#includeint main()

不建立臨時變數交換兩個整數

#includeint main()

實現求乙個整數儲存在記憶體中的二進位制數中1的個數

方法一:

#includeint main()

n /= 2;

} printf("count=%d", count);

return 0;

}

方法二:

#includeint main()

printf("count=%d", count);

return 0;

}

四、賦值操作符:=

復合賦值操作符:+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=、

**五、單目操作符:*自增++、自減–、正+、負-,邏輯反!、

對運算元按位取反~、取位址操作符&、

間接訪問操作符、(型別)強制型別轉換操作符,

sizeof操作符的型別長度,單位為位元組(不是函式)

例如:

#includeint main()

例如:

int a=10;

char b=(char)a;//並不改變原始a,的型別,原始a依舊為int 型

**六、關係操作符:**邏輯與&&、邏輯或||、>、>=、<、<=、!=、==

按位與:1&2=0

邏輯與:1&&2=1

按位或:1|3=3;

邏輯或:1||3=1

例如:

#includeint main()

七、條件操作符:exp1?exp2:exp3;

#includeint main()

八、逗號表示式

exp1,exp2,exp3;

用逗號隔開的多個表示式,從左向右執行,最後的結果由最後乙個表示式決定

例如:

#includeint main()

九、下標引用、函式呼叫和結構體成員

1、[ ]下標引用操作符

運算元:乙個陣列名+乙個索引值

例如:int arr[10];//建立陣列

arr[9]=10;//使用下標引用,arr和9是兩個運算元

2、()函式呼叫操作符

接受乙個或者多個運算元,第乙個運算元是函式名,其他的運算元就是函式的引數

例如:int fib(int n)

int main()

3、訪問乙個結構的成員

.結構體.成員名

->結構體指標->成員名

例如:

#includestruct stu

;void set_age1(struct stu stu)

void set_age2(struct stu* pstu)

int main()

十、表示式求值

為了獲得這個精度,表示式中的字元和短整型運算元在使用之前被轉換為普通整型,這種轉換稱為整形提公升

例如:char a,b,c;

…a=b+c;//在計算時,會先將b,c從char型轉換為int型,計算完了之後再轉換為char型,這是因為在計算機中,計算過程在cpu中完成,而電腦中的內容都是以二進位制數字形式儲存的。

整形提公升是根據變數自身的資料型別的符號位來提公升的:

1、有符號型別的整形提公升:高位補充符號位

2、無符號型別的整形提公升:高位補充0;

例如1:

#includeint main()

if (0xb600 == b)//0xb600是整十六進製制型,b是char型,會發生整型提公升,提公升為後為負數,所以不相等

if (0xb6000000 == c)//只會輸出c

return 0;

}

例如2:

#includeint main()

一、算術轉換

如果某個操作符的各個運算元不是同一型別,則會將其中乙個轉換為另乙個運算元的型別

如果某個運算元的型別在以下列表中排名較低,那麼首先將這個運算元轉換為另乙個運算元的型別

long double

double

float

unsigned long int

long int

unsigned int

intshort

char

二、操作符的屬性

1、操作符的優先順序

2、操作符的結合性

3、是否控制求值順序

元小白(猿小白)高階日記 三(for)

3 for for 表示式1 表示式2 表示式3 迴圈語句 表示式1 初始化部分,用於初始化變數 表示式2 條件判斷部分,用於判斷迴圈的終止 表示式3 調整部分,用於迴圈條件的調整例如 用for輸出0到10 define crt secure no warnings 1 include includ...

元小白(猿小白)高階日記 五(函式)

自定義函式 ret type fun name paral,ret type 返回值型別 fun name 函式名 paral 函式引數舉例 1 求兩個數中較大的數 define crt secure no warnings 1 include int max int x,int y else re...

元小白(猿小白)高階日記 七(陣列)

陣列是一類相同元素的集合。一 一維陣列 1 陣列的建立 type t arr name const n type t 是指數組的元素型別 const n 是乙個常量表示式,用來指定陣列的大小,即元素個數 例如 int arr1 10 char arr2 30 float arr3 33 2 陣列的初...