作者前言
? ? ? ? ?作者介紹:
? ? ? ? ? 作者id:老秦包你會(huì),
簡(jiǎn)單介紹:
? ? ? ? ? ? ?喜歡學(xué)習(xí)C語(yǔ)言和python等編程語(yǔ)言,是一位愛(ài)分享的博主,有興趣的小可愛(ài)可以來(lái)互討
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 個(gè)人主頁(yè)::小小頁(yè)面
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? gitee頁(yè)面:秦大大
? ? ? ? ? ? ? ? ? ? ? ? 一個(gè)愛(ài)分享的小博主 歡迎小可愛(ài)們前來(lái)借鑒
_______________________________________________________
______________________________________________________________________
目錄
????????操作符類別
????????操作符的使用????????
算術(shù)操作符
+ ? ?- ? * ? / ? %
*? ?- +等操作符就跟數(shù)學(xué)的用法一樣,這里先不講,
/ 有兩種用法,一種為整數(shù)除法,一種為小數(shù)除法
#include <stdio.h>
int main()
{
int a = 20;
printf("%d\n", a / 5);
printf("%lf\n", a / 5.0);
return 0;
}
%只能是兩邊只能是整數(shù)?
移位操作符(針對(duì)的是該數(shù)的補(bǔ)碼)

?
?計(jì)算機(jī)采用的就是取反,加1的套路

?
?C語(yǔ)言中,內(nèi)存存一個(gè)整數(shù)是存它的補(bǔ)碼,(整數(shù)在內(nèi)存中存儲(chǔ)的是補(bǔ)碼),整數(shù)在計(jì)算的時(shí)候使用的也是補(bǔ)碼
>>右移運(yùn)算符
分類:1.邏輯右移
? ? ? ? ? ? 2. 算術(shù)右移
這兩種右移是由編譯器決定的,不能由個(gè)人決定,vs編譯器是算術(shù)右移
#include <stdio.h>
int main()
{
int m = 7;
int n = 7 >> 1;
printf("%d", n);
return 0;
}
算術(shù)右移:
?根據(jù)你要移動(dòng)的位數(shù)在最右邊舍棄幾位,并在最左端補(bǔ)上0,,而負(fù)數(shù)的,在最左端補(bǔ)上1
邏輯右移:
?根據(jù)你要移動(dòng)的位數(shù)在最右邊舍棄幾位,并在最左端補(bǔ)上0
<<左操作符
你要移動(dòng)的位數(shù)在最左邊舍棄幾位,并在最右端補(bǔ)上0,
位操作符(針對(duì)的是該數(shù)的補(bǔ)碼)
#include <stdio.h>
int main()
{
int a = -5;
int b = 3;
printf("%d\n", a & b);
printf("%d\n", a | b);
printf("%d\n", a ^ b);
return 0;
}

?& //按位與
跟數(shù)學(xué)的與相識(shí),全為真才是真,兩數(shù)對(duì)應(yīng)的二進(jìn)制位都為1才是1,其他都是0
-5 & 3==》00000000000000000000000000000011(補(bǔ)碼)
| //按位或
跟數(shù)學(xué)的或相識(shí),有真才是真,全假才為假,兩數(shù)對(duì)應(yīng)的二進(jìn)制位只有有一個(gè)為1,才是1,全部為0才是0
-5 |?3==》1111111111111111111111111111010?(補(bǔ)碼)==》10000000000000000000000000000101 (原碼)
^ //按位異或
兩數(shù)對(duì)應(yīng)的值是一樣的就為0,不同就為1
-5^3==>1111111111111111111111111111000(補(bǔ)碼) ==》10000000000000000000000000001000(原碼)
a^a=a
0^a=a
我們計(jì)算兩數(shù)交互的時(shí)候可以利用這個(gè)方法來(lái),可以少創(chuàng)建一個(gè)變量,這個(gè)方法的可讀性不高,建議不要使用太多
#include <stdio.h>
int main()
{
int a = 5;
int b = 6;
printf("a=%d b=%d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
return 0;
}
需要注意的是,這些操作符適用于整形
賦值操作符
=
從右向左賦值
復(fù)合賦值符
+= 、-= 、*= 、/= 、%= 、>>= 、<<= 、&= 、|= 、^=
這些的使用就跟? a = a+b===> a+=b是一樣的效果
單目操作符
!是把真變成假,假變成真? ?變成假是0, 變成真是1
?&取地址,
* 解引用操作符
#include <stdio.h>
int main()
{
int a = 0;
printf("%p\n", &a);
int* p = &a;
int arr[10];
int* pa = arr;
printf("%p\n", pa);
printf("%p\n", &pa);
*p = 15;//對(duì)p解引用操作,*p是通過(guò)p中存放的地址,找到p指向的對(duì)象,*p就是a
printf("%d\n", a);
return 0;
}
sizeof計(jì)算結(jié)果返回size_t類型也就是unsigned int? (無(wú)符號(hào)整型) 輸出格式是%zd
#include <stdio.h>
int main()
{
int arr[10];
printf("%zd\n", sizeof arr);
printf("%zd\n", sizeof (arr));
printf("%zd\n", sizeof (int));
printf("%zd\n", sizeof arr / sizeof(int));
return 0;
}
sizeof 不是函數(shù),因?yàn)楹瘮?shù)的引用的()不能省略,
是計(jì)算類型或者變量的大小,單位是字節(jié)
計(jì)算變量大小可以不寫(),如果計(jì)算類型要保留()
#include <stdio.h>
int main()
{
int a = 0;
printf("%d\n", ~a);
return 0;
}
結(jié)果為-1 ,0的補(bǔ)碼為00000000000000000000000000000000,~0則是11111111111111111111111111111111,取反加1得到原碼為10000000000000000000000000000001
#include <stdio.h>
int main()
{
int a = 2;
printf("%d", a | (1 << 2));
printf("%d", (a | (1 << 2)) & (1 << 2));
return 0;
}
++、--都有兩種用法,分別是前置和后置
++
前置++:先加1 再使用
后置++;先使用再加1
#include <stdio.h>
int main()
{
int a = 0;
int b = ++a;
printf("a=%d b=%d\n", a, b);
b = a++;
printf("a=%d b=%d\n", a, b);
return 0;
}
--
前置--:先減1 再使用
后置--;先使用再減1
#include <stdio.h>
int main()
{
int a = 0;
int b = --a;
printf("a=%d b=%d\n", a, b);
b = a--;
printf("a=%d b=%d\n", a, b);
return 0;
}
(類型) ? ? ? 強(qiáng)制類型轉(zhuǎn)換
#include <stdio.h>
int main()
{
int a = (int)3.14;
printf("%d", a);
return 0;
}
類型轉(zhuǎn)換盡量能不使用就不使用
關(guān)系操作符
邏輯操作符
#include <stdio.h>
int main()
{
int a = 1;
int b = 0;
printf("%d", a && b);
printf("%d", a || b);
return 0;
}
短路操作
#include <stdio.h>
int main()
{
? ?int i = 0,a=0,b=2,c =3,d=4;
? ?i = a++ && ++b && d++;
? ?//i = a++||++b||d++;
? ?printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
? ?return 0;
}
使用&&時(shí)只要一方為假另一方就不用算了
使用|| 只要一邊為真,另一方就不用算了文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-623283.html
總結(jié):
操作符展示到這里了,后面還有一篇介紹下面的,有不懂的小可愛(ài)可以私聊我文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-623283.html
到了這里,關(guān)于C語(yǔ)言第十一課--------操作符的使用與分類-------基本操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!