操作符
1.算數運算子
+ - * / %
注:1) / 運算中,被除數不能為零
2) % 運算中,浮點數不能用於取模
2.移位操作符
<< 左移操作符 左邊拋棄,右邊補零(左移一位相當於乘以2)
>> 右移操作符 ①算數右移:如果最高位為1,則補1,否則補0
②邏輯右移:高位補零,右邊拋棄(相當於除以2)
注:負數不能進行移位操作符。
3.位操作符
| 按位或 (二進位制每位對應去或)
& 按位與
~ 按位取反
^ 按位取異或
1)把乙個整數的二進位制中的某一位設定為1或0
int num = 10;
num = num | (1 << 4);//把第四位設定為1 0000 1010 --> 0001 1010
num = num & ~ (1 << 4);//把第四位設定為0
2)求乙個整數儲存在記憶體中的二進位制中1的個數
法一
int num = -1;
int count = 0;
int i;
for(i = 0; i < 32; i++) }
printf("%d\n", count);
法二
int num = 15;
int count = 0;
while(num)
printf("%d\n", count);
4.賦值操作符
+= -= /= *= %= |= &= ~= 先運算後賦值
i++ 後置++相當於,int t = i; i += 1; return t; 多占用記憶體
++i 前置++相當於,i += 1; return i; 不用另開闢記憶體儲存變數, 多使用
5.單目運算子
! 邏輯取反 + - ++ --
& 取位址
~ 二進位制數按位取反
* 解引用操作符
sizeof 運算元的型別長度(按位元組)
sizeof求長度對於陣列, 傳參使隱式轉為指標和型別的關係:
void test1(int* a)
void test2(char* ch)
int main()
; char ch[10];
printf("%d\n", sizeof(a));
//輸出為40,sizeof(a)求整型陣列的長度,4個位元組的10個元素
printf("%d\n", sizeof(ch));
//輸出為10,sizeof(ch)求字元陣列的長度,1個位元組的10元素
test1(a);
//輸出為4,陣列傳參時,被隱式轉換為指向陣列首個元素的指標
test2(ch);
//不管int*還是char*指標型別長度都為4位元組
return 0;
}
6.關係操作符
< > <= >=
== 判斷相等
!= 判斷不等
7.邏輯操作符
&& //邏輯與 1 && 2 為真(1)
|| //邏輯或 1 || 2 為真(1)
對於&&來說,如果左側表示式為假,則後面表示式不在計算。
對於 || 來說,如果左側表示式為真,則右側表示式不在計算。
360面試真題
int i = 0, a = 0, b = 2, c = 3, d = 4;
//i = a++ && ++b && d++; //輸出為 a = 1, b = 2, d = 4
//a++先賦值後加,所以i第乙個數為假,邏輯表示式不在往後執行
i = a++ || ++b || d++; //輸出為 a = 1, b = 3, d = 4
//a++先賦值後加,所以i第乙個數為假,運算到第二個表示式++b為真,表示式不在執行
printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
8.條件操作符
exp1 ? exp2 : exp3
//三目運算子可實現else if 的功能
舉例
(a > b) ? a : b
//相同功能**為
if(a > b)
else
9.逗號表示式
表示式1,表示式2, ...... ,表示式n
逗號表示式的輸出為: 從左向右 ,最後乙個表示式
10.下標引用、函式呼叫和結構成員
1) 陣列名 + [ ]下標引用 可呼叫陣列或陣列中的某個元素
2) 函式名 + ( )函式呼叫操作符 可呼叫函式
3).結構體.成員名
–>結構體–>成員名
結構體呼叫,使用舉例
struct stu
;void person1(struct stu stu)
void person2(struct stu* p)
int main()
C語言操作符總結
c語言操作符總結 1.算數操作符 有浮點數則為浮點除法 全為整形 2.移位操作符 所有的移位操作符都是二進位制移位 左移 效果 左邊拋棄右邊補0.右移 效果 1 符號位 算術移位 原該值的符號位 2 0 邏輯移位 警告 不要移動負數字 3.位操作符 按位與 按位或 按位異或 注意 全都為二進位制位操...
C語言 操作符總結
1.運算操作符 加 可作為正號 例 a b 4 減 可作為正號 例 a b 5 乘 例 a b 除 例 a b 注意 分母不能為零 取餘 運算操作符的使用方法,基本與數學上的使用一致 2.賦值操作符 例 a 2 可讀為將2賦給a 注意 從右向左進行運算 3.其他符賦值操作符 例 a 1 相當於 a ...
C語言操作符總結
1.操作符的兩個運算元必須為整數,返回的是整除後的餘數。2.對於 操作符,如果兩個運算元都是整數則執行整數除法,只要有浮點數就執行浮點數除法。左移操作符 右移操作符 左邊拋棄,右邊補0 右移分為兩種 1.邏輯移位 左邊用0補,右邊丟棄 2.算術移位 左邊用原來的符號位填充,右邊丟棄 符號位中0表示正...