<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:在我們程式編寫領域,操作符給我們提供了很多的運算便利,但操作符琳琅滿目,我們要怎樣用好它們呢,下面就帶你來熟悉熟悉這些多樣的操作符。
操作符分類:
算術操作符 、移位元運算符 、位元運算符 、賦值操作符 、單目操作符 、關係操作符 、邏輯操作符 、條件操作符 、逗號表示式 、下標參照、函數呼叫和結構成員
這裡我們著重講一下取餘(模)%操作符和除法/操作符
#include<stdio.h> int main() { //取餘(模)、除法 int ret1 = 10 % 3;//取餘(模),得到的結果是相除之後的餘數 int ret2 = 10 / 3;//除法-得到的結果是商 printf("ret1=%dnret2=%dn", ret1, ret2); //當/(除號)兩端都是整數的時候,執行的是整數除法 //當兩端只要有一個浮點數,執行的就是浮點數的除法 double ret = 10.0 / 3; printf("%lfn", ret); return 0; }
這裡注意!!!
移位元運算符的運算元只能是整數,整數在記憶體中存的是二補數,但最後輸出的,也就是我們看到的,是原碼。
(1)左移
#include<stdio.h> int main() { //2.移位元運算符 //左移 int a = 5; //把a在記憶體中儲存的二進位制位向左移動2位 int b = a << 2; printf("%dn", b); printf("%dn", a); }
計算演示:
(2)右移
分為算數右移和邏輯右移,具體是哪種右移取決於編譯器。
算數右移:右邊丟棄,左邊補原來的符號位(負數右移幾位左邊就添幾個1)
邏輯右移:右邊丟棄,左邊補0
(常見的編譯器都是算數右移)
#include<stdio.h> int main() { int a = 5; int b = a >> 2; printf("%dn", b); return 0; }
我們直接上程式碼
#include<stdio.h> int main() { int a = 3; int b = -5; int x = a & b; int y = a | b; int z = a ^ b; printf("%d %d %d", x, y, z); return 0; }
(1)按位元與&
相同為1,不同為0
(2)按位元或
只要有1則為1,兩個同時為0才為0
(來個例題)
不能建立臨時變數(第三個變數),實現兩個數的交換
第一種,採用算數操作符來解決
#include<stdio.h> int main() { int a = 3, b = 5; printf("交換前:a=%d b=%dn", a, b); a = a + b;//a+b=8 b = a - b;//此時的a=8,b還是5,則b=8-5=3,也就是之前的a a = a - b;//次時的a還是8,而b已經賦值為3,所以這時的a=8-3=5,也就是之前的b printf("交換後:a=%d b=%dn", a, b); return 0; }
但是這種方法不夠完美,當a很大,b也很大的時候,則放不進整型裡面,存在溢位問題,不能解決所有問題。那麼我們就來看下第二種方法:使用互斥或
(相同的互斥或為0,任何數與0互斥或還是原的數)
#include<stdio.h> int main() { int a = 3, b = 5; printf("交換前:a=%d b=%dn", a, b); a = a ^ b; b = a ^ b;//相當於a^b^b=a a = a ^ b;//相當於a^b^a(此時的b=a)=b printf("交換後:a=%d b=%dn", a, b); return 0; }
但是這個方法的可讀性不高,也存在缺陷,如果你有更好的方法記得告訴博主哦!
(1)=,沒什麼好講的
這裡要提一點,連續賦值(不提倡),但要注意的是等號兩邊不能同時為常數
(2)複合賦值符
+= :a=a+b可以寫成a+=b
-= :a=a-b可以寫成a-=b
*= :a=a*b可以寫成a*=b
下面以此類推
/= 、%= 、>>= 、<<= 、&= 、|= 、^=
好啦,操作符詳解的上篇今天就到這了,敬請期待下篇!!!
到此這篇關於C語言各種操作符透徹理解上篇的文章就介紹到這了,更多相關C語言 操作符內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45