4.3 C語言基本運(yùn)算符
小學(xué)數(shù)學(xué)學(xué)過加、減、乘、除等運(yùn)算符號(hào)以及四則混合運(yùn)算,而這些運(yùn)算符號(hào)在C語言中也有,但是有些表達(dá)方法不一樣,并且還有額外的運(yùn)算符號(hào)。在C語言編程中,加、減、乘、除和取余數(shù)的符號(hào)分別是:+、-、*、/、%。
C語言有一個(gè)很重要的賦值運(yùn)算符“=”,前邊程序有使用過。在C語言里,“=”代表的意思是賦值,而不是等于。最經(jīng)典的一個(gè)例子就是a=1;b=2;如果寫成a = a+b;這個(gè)在數(shù)學(xué)里的運(yùn)算是a等于a加b,是個(gè)錯(cuò)誤結(jié)論;而在c語言里的意思是把a(bǔ)加b的結(jié)果送給a,那么運(yùn)算完了之后的結(jié)果是a等于3,b還等于2。
說到這里就不得不說C語言的比較運(yùn)算符“==”。這個(gè)在C語言里是進(jìn)行是否等于判斷的關(guān)系運(yùn)算符,而“!=”就是不等于的關(guān)系運(yùn)算符。
此外,C語言中還有額外的兩個(gè)運(yùn)算符++和--,一個(gè)是自加1,一個(gè)是自減1,下面選++來講一下。
++在用法上就是加1的意思,注意是變量自己加,比如b++的意思就是b=b+1,而在編程的時(shí)候有兩種常用的方式先加和后加。比如
unsigned char a = 0; unsigned char b = 0;
那么
a = ++b;
其整個(gè)運(yùn)算過程是先計(jì)算b=b+1,那么b就等于1了,然后再運(yùn)行a=b,運(yùn)行完畢后a=1,b=1。如果寫成
a=b++;
那么運(yùn)算過程就是先執(zhí)行a=b;然后再執(zhí)行b=b+1,執(zhí)行完的結(jié)果就是a=0,b=1。
這些運(yùn)算符這里就是簡單介紹一下,而后邊會(huì)通過使用實(shí)例來鞏固這些知識(shí)。其他一些運(yùn)算符,在使用過程中也會(huì)陸陸續(xù)續(xù)介紹到。
4.4 for循環(huán)語句
for語句是C語言編程的一個(gè)常用的語句,這個(gè)語句必須得學(xué)會(huì)其用法,它不僅僅可以用來做延時(shí),更重要的是用來做一些循環(huán)運(yùn)算。for語句的一般形式如下:
for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3)
{
(需要執(zhí)行的語句);
}
其執(zhí)行過程是:表達(dá)式1首先執(zhí)行且只執(zhí)行一次;然后執(zhí)行表達(dá)式2,通常都是一個(gè)用于判定條件的表達(dá)式,如果表達(dá)式2條件成立,就執(zhí)行(需要執(zhí)行的語句);然后再執(zhí)行表達(dá)式3;再判斷表達(dá)式2,執(zhí)行(需要執(zhí)行的語句);再執(zhí)行表達(dá)式3.....一直到表達(dá)式2不成立時(shí),跳出循環(huán)繼續(xù)執(zhí)行循環(huán)后面的語句。舉個(gè)例子:
for (i=0; i<2; i++)
{
j++;
}
這里有一個(gè)符號(hào)++剛剛講過了。假如j最開始初值是0,首先執(zhí)行表達(dá)式1的i=0,然后判斷i小于2這個(gè)條件成立,就執(zhí)行一次j++,j的值就是1了,然后經(jīng)過表達(dá)式3后,i的值也變成1了,再判斷條件2,還是符合,j再加一次,j變成2了,再經(jīng)過表達(dá)式3后i也變成2了,再判斷條件2,發(fā)現(xiàn)2<2這個(gè)條件不成立了,所以就不會(huì)再執(zhí)行j++這個(gè)語句了。所以執(zhí)行完畢后,j的值就是2。
for語句除了這種標(biāo)準(zhǔn)用法,還有幾種特殊用法,比如前面的閃爍小燈對(duì)for語句的用法for(i=0; i<30000; i++) ;沒有加(需要執(zhí)行的語句),就是什么都不操作。但是什么都不操作的話,這個(gè)for語句循環(huán)判斷了30000次,程序執(zhí)行是會(huì)用掉時(shí)間的,所以就起到了延時(shí)的作用。比如把30000改成20000,會(huì)發(fā)現(xiàn)燈的閃爍速度加快了,因?yàn)檠訒r(shí)時(shí)間短了,當(dāng)然,改成40000后會(huì)發(fā)現(xiàn),閃爍慢了。但是有一點(diǎn)特別注意,C語言的延時(shí)時(shí)間是不能通過程序看出來的,也不會(huì)成比例,比如這個(gè)for循環(huán)里邊的表達(dá)式2使用30000時(shí)延時(shí)是3秒的話,那么改成40000的時(shí)候,可能并不一定是4秒。
還有一種寫法for( ; ; ),這樣寫后,這個(gè)for循環(huán)就變成了死循環(huán)了,就不停的執(zhí)行(需要執(zhí)行的語句),和前邊講的while(1)的意思是一樣的了。那while這個(gè)語法是如何用的呢?
審核編輯 黃宇
-
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145645
發(fā)布評(píng)論請(qǐng)先 登錄
講解C語言代碼的實(shí)現(xiàn)過程
C語言主要特點(diǎn)
第6章 中斷與數(shù)碼管動(dòng)態(tài)顯示(6.1 6.2)
C語言特性
【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板驅(qū)動(dòng)開發(fā)第4章驅(qū)動(dòng)模塊傳參實(shí)驗(yàn)
第4章 C語言基礎(chǔ)以及流水燈的實(shí)現(xiàn)(4.5 4.6)
蜂鳥E203在黑金XC7A200T型FPGA上點(diǎn)亮LED并實(shí)現(xiàn)流水燈
【沁恒CH585開發(fā)板免費(fèi)試用體驗(yàn)】GPIO 流水燈
【RA-Eco-RA4M2開發(fā)板評(píng)測(cè)】點(diǎn)燈實(shí)現(xiàn)6種LED花式流水燈操作
【RA-Eco-RA4M2開發(fā)板評(píng)測(cè)】2 初識(shí)GPIO流水燈
單片機(jī)外圍電路設(shè)計(jì) (第2版)
基于運(yùn)算放大器和模擬集成電路的電路設(shè)計(jì)(第3版)
新概念51單片機(jī)C語言教程入門、提高、開發(fā)、拓展全攻略
【北京迅為】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)-第4章 UART基礎(chǔ)知識(shí)
第4章 C語言基礎(chǔ)以及流水燈的實(shí)現(xiàn)(4.3 4.4)
評(píng)論