零基礎(chǔ)學(xué)C語(yǔ)言(攻克常用運(yùn)算符與關(guān)鍵字)-創(chuàng)新互聯(lián)

攻克常用運(yùn)算符與關(guān)鍵字
  • 一、運(yùn)算符
    • 1.算數(shù)運(yùn)算符
    • 2.賦值運(yùn)算符
    • 3.單目運(yùn)算符
    • 4.關(guān)系運(yùn)算符與邏輯運(yùn)算符
    • 5.條件表達(dá)式與逗號(hào)表達(dá)式
  • 二、關(guān)鍵字
    • 1.常見(jiàn)關(guān)鍵字
    • 2.關(guān)鍵字static
      • (1)修飾局部變量
    • 3.關(guān)鍵字register
  • 三、其他要點(diǎn)
    • 1.預(yù)處理指令#define(define不是關(guān)鍵字)
      • (1)define定義標(biāo)識(shí)符常量
    • 2.const常量

創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元金壇做網(wǎng)站,已為上家服務(wù),為金壇各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108一、運(yùn)算符 1.算數(shù)運(yùn)算符 2.賦值運(yùn)算符 3.單目運(yùn)算符 4.關(guān)系運(yùn)算符與邏輯運(yùn)算符 5.條件表達(dá)式與逗號(hào)表達(dá)式 二、關(guān)鍵字 1.常見(jiàn)關(guān)鍵字 2.關(guān)鍵字static (1)修飾局部變量 3.關(guān)鍵字register 三、其他要點(diǎn) 1.預(yù)處理指令#define(define不是關(guān)鍵字) (1)define定義標(biāo)識(shí)符常量 2.const常量

—————————————————————————————————————
一、運(yùn)算符
1.算術(shù)運(yùn)算符:

運(yùn)算符符號(hào)
加號(hào)+
減號(hào)-
乘號(hào)*
除號(hào)/
模(取余數(shù))%

注意:
1.C語(yǔ)言中的運(yùn)算規(guī)則大致相同,0不能做被除數(shù)。
2.取余數(shù)時(shí),只能是整數(shù)型常量或變量,否則編譯器會(huì)報(bào)錯(cuò)。
3.在進(jìn)行除法時(shí),如果結(jié)果要求位小數(shù),除號(hào)左右兩端至少有一端帶小數(shù),如3/4.0,且數(shù)據(jù)類型只能為float或double,在輸出時(shí)用%f%lf進(jìn)行輸出。

2.賦值運(yùn)算符

操作符符號(hào)
賦值=
加法賦值+=
減法賦值-=
乘法賦值*=
除法賦值/=
#includeint main()
{int a=0;
	a+=1;
	a=a+1;
	//上方兩個(gè)語(yǔ)句的意思是相同的,都是將a加上1后再賦值給a,之后a的結(jié)果變?yōu)?。
	//只不過(guò)第一個(gè)語(yǔ)句更加簡(jiǎn)便。
	a*=2;
	a=a*2//同理
	return 0;
}	

注意:
=在C語(yǔ)言中的意思是賦值,而不是數(shù)學(xué)中的判斷是否相等,C語(yǔ)言中的判斷相等的符號(hào)是==,一定要區(qū)分清楚!

3.單目運(yùn)算符

符號(hào)含義
+正值
-負(fù)值
!邏輯反操作
&取地址
sizeof操作符的類型長(zhǎng)度
自減符
++自增符
()強(qiáng)制類型轉(zhuǎn)換

注意:
1.+與-在這里是符號(hào)位,不用于計(jì)算。
2.sizeof不是函數(shù),既是操作符也是關(guān)鍵字,在求數(shù)據(jù)類型的長(zhǎng)度時(shí)必須加上括號(hào),這是語(yǔ)法規(guī)定。
3.++和–,既有前置,也有后置。前置時(shí),如++a,是先將變量a的值加1,再使用變量a的值;后置時(shí),如a++,是先使用變量a的值,再將變量a的值加1。且自增和自減符只能加1或者減1。

#includeint main()
{int a=0;
	printf("%d\n",sizeof(int));//sizeof的括號(hào)不能省略
	printf("%d\n",sizeof(a));
	//所有輸出結(jié)果都為int類型——數(shù)據(jù)類型的大小為4
	return 0;
}

輸出結(jié)果
思考下面一段代碼,計(jì)算最后的結(jié)果:

#includeint main()
{int a=0,b;
	b=a++;
	printf("%d %d",a,b);
	b=++a;
	printf("%d %d",a,b);
	return 0;
}

第一次運(yùn)算后,a=1,b=0;第二次運(yùn)算后,a=2,b=2。
提示:++a是先使用,a++是后使用。

4.關(guān)系運(yùn)算符與邏輯運(yùn)算符
關(guān)系運(yùn)算符:

運(yùn)算符符號(hào)
小于<
小于等于<=
大于>
大于等于>=
等于==
不等于!=

注意:
1.關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算數(shù)運(yùn)算符,在關(guān)系運(yùn)算符中,前四個(gè)運(yùn)算符的級(jí)別比后兩個(gè)的優(yōu)先級(jí)高
2.含有關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有兩個(gè):1(true)或0(false)。因次,關(guān)系運(yùn)算的結(jié)果是整型數(shù)據(jù)。如果關(guān)系成立,結(jié)果為1;如果關(guān)系不成立,結(jié)果為0。
3.雖然關(guān)系運(yùn)算符的結(jié)果是整型數(shù)據(jù),但是關(guān)系運(yùn)算符可以用于比較整形和浮點(diǎn)數(shù),也允許比較混合類型的操作數(shù)。

邏輯運(yùn)算符:

運(yùn)算符符號(hào)
&&邏輯與
||邏輯或
!邏輯非

邏輯與運(yùn)算的特點(diǎn):僅當(dāng)兩個(gè)操作數(shù)都為真時(shí)結(jié)果才為真,其他情況都為假。當(dāng)需要兩個(gè)條件同時(shí)為真時(shí),使用邏輯與運(yùn)算符&&把兩個(gè)條件連接起來(lái)。
邏輯或運(yùn)算的特點(diǎn):僅當(dāng)兩個(gè)操作數(shù)都為假時(shí)結(jié)果才為假,其他情況都為真。因此,當(dāng)需要表示兩個(gè)條件只要有一個(gè)成立時(shí),可使用邏輯或來(lái)連接這兩個(gè)條件。例如,判斷某人的年齡屬于60以上或12以下的范圍,所對(duì)應(yīng)的表達(dá)式為:age>60||age<12.
邏輯非運(yùn)算符用于反轉(zhuǎn)一個(gè)條件的值。邏輯非運(yùn)算符只需要一個(gè)操作數(shù),若操作數(shù)為真,則該邏輯表達(dá)式為假;若操作數(shù)為假,則該邏輯表達(dá)式為真。
注意:邏輯表達(dá)式的值,即邏輯運(yùn)算的結(jié)果只有真和假兩個(gè)值,C語(yǔ)言沒(méi)有提供布爾類型,當(dāng)運(yùn)算結(jié)果為真時(shí)用1表示,為假時(shí)用0表示。但是在判斷一個(gè)數(shù)值表達(dá)式(不一定是邏輯表達(dá)式)真假時(shí),由于任意一個(gè)數(shù)值表達(dá)式的值不局限于0和1兩種情況,因此根據(jù)表達(dá)式的值為0還是非0來(lái)判斷其真假,如果表達(dá)式為非0(負(fù)數(shù)也可以)時(shí)為真,否則為假。
優(yōu)先級(jí):一元運(yùn)算符(單目運(yùn)算符)>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>大于邏輯運(yùn)算符(!除外)>賦值運(yùn)算符
注意:!既是邏輯運(yùn)算符又是單目運(yùn)算符,所以!是最高的。
當(dāng)然,記不住這些優(yōu)先級(jí)也不必驚慌,”將需要計(jì)算的表達(dá)式用圓括號(hào)括起來(lái)“是解決這個(gè)問(wèn)題的靈丹妙藥。

5.條件表達(dá)式逗號(hào)表達(dá)式
C語(yǔ)言提供了一種特殊的運(yùn)算符,用來(lái)依據(jù)條件選擇兩個(gè)值中的一個(gè)。
條件表達(dá)式:

表達(dá)式 1 ? 表達(dá)式 2 : 表達(dá)式 3

以上的組合表達(dá)式稱作條件表達(dá)式,這是唯一一個(gè)要求三個(gè)操作符的運(yùn)算符,因此,也被稱為三元運(yùn)算符。

使用表達(dá)式求兩個(gè)整數(shù)的大值

#includeint main()
{int a,b,max;
	svanf("%d %d",a,b);
	max=(a>b)?a:b;
	printf("%d\n",max);
	return 0;
}

在這其中,(a>b)?a:b是一個(gè)程序表達(dá)式,若條件(a>b)成立,則條件表達(dá)式取值a;否則,取值b。

逗號(hào)表達(dá)式:
逗號(hào)表達(dá)式就是將兩個(gè)及其以上的式子聯(lián)接起來(lái),從左往右逐個(gè)計(jì)算表達(dá)式,整個(gè)表達(dá)式的值為最后一個(gè)表達(dá)式的值。
表示方式:
(表達(dá)式1,表達(dá)式2,表達(dá)式3,… ,表達(dá)式n)
注意:
(1) 逗號(hào)表達(dá)式的運(yùn)算過(guò)程為:從左往右逐個(gè)計(jì)算表達(dá)式。
(2) 逗號(hào)表達(dá)式作為一個(gè)整體,它的值為最后一個(gè)表達(dá)式(也即表達(dá)式n)的值。
(3) 逗號(hào)運(yùn)算符的優(yōu)先級(jí)別在所有運(yùn)算符中最低。

二、關(guān)鍵字
1.常見(jiàn)關(guān)鍵字

auto  break   case  char  const   continue  default  do   double else  enum   
extern  float  for   goto  if   int   long  register    return   short  signed
sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

注意:用戶不能自己創(chuàng)造關(guān)鍵字。

2.關(guān)鍵字static
(1)修飾局部變量

void  not()
{static int a=1;
	a++;
	printf("%d ",a);
}
int main()
{int i=0;
	while(i<10)
	{not();
		i++;
	}
	return 0;
}

static修飾函數(shù)中的局部變量:(局部變量存儲(chǔ)位置由堆區(qū)移至靜態(tài)區(qū)),使函數(shù)中的局部變量不會(huì)改變。
生命周期延長(zhǎng):該變量不會(huì)隨函數(shù)的結(jié)束而結(jié)束。
初始化:只在第一次調(diào)用該函數(shù)時(shí)進(jìn)行初始化。
記憶性:之后調(diào)用時(shí),該變量使用前一次函數(shù)調(diào)用完成之后保存的值。

3.關(guān)鍵字register(寄存器變量)

int main()
{//寄存器變量
	register  int num=3;//建議將3存放在寄存器里
	return 0;
}

運(yùn)行速度:寄存器>高速緩存>內(nèi)存>硬盤(pán)
空間:硬盤(pán)>內(nèi)存>高速緩存>寄存器
造價(jià):寄存器>高速緩存>內(nèi)存>硬盤(pán)
由于以上特性,所以不能把大量數(shù)據(jù)存放至寄存器中,只是建議將register修飾的變量存放在寄存器中。

三、其他要點(diǎn)
1.預(yù)處理指令#define(define不是關(guān)鍵字)
(1)define定義標(biāo)
#define 編譯指令的準(zhǔn)確含義是,命令編譯器將源代碼中所有標(biāo)識(shí)符常量替換為替換文本。

#define NUM 100;//NUM就變成100的別名
#define PI  3.1415926;//PI就是3.1415926的別名

根據(jù)約定,符號(hào)常量名中的字母為大寫(xiě),這易于將其同變量名區(qū)分開(kāi)
宏常量也有其自身缺點(diǎn),就是宏常量被替換成替換文本之后,內(nèi)存中就有同一個(gè)替換文件的多份副本。

2.const常量
const常量與變量定義形式類似,加上const 修飾,告訴編譯器,它的值是固定的,不能被改變,編譯器會(huì)幫你檢查,監(jiān)督。

const double PI=3.1415926;

const推出的目的就是為了取代宏常量,消除其缺點(diǎn),同時(shí)繼承其優(yōu)點(diǎn)。
在編譯時(shí),由于const定義常量只是給出了對(duì)應(yīng)的內(nèi)存地址,所以const定義的常量在程序運(yùn)行過(guò)程中只有一份副本。

以上內(nèi)容是一位計(jì)算機(jī)菜鳥(niǎo)所寫(xiě),如果存在錯(cuò)誤,還請(qǐng)?jiān)谠u(píng)論區(qū)指出,我們可以一起交流,討論。
希望喜歡的我的內(nèi)容的大大們,為我點(diǎn)點(diǎn)關(guān)注,點(diǎn)點(diǎn)贊!??!
請(qǐng)?zhí)砑訄D片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)名稱:零基礎(chǔ)學(xué)C語(yǔ)言(攻克常用運(yùn)算符與關(guān)鍵字)-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article2/cdsioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、云服務(wù)器網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、微信小程序定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)