1、
c語言的運算子可以分為哪幾類?
算術運算子:用於
各類數值運算,包括+、-、
*、/、
%、++、
--關係運算子:用於比較運算,包括》、
<、==
、>=
、<=、!=
邏輯運算子:
用於邏輯運算,包括
&&、||
、!位操作運算子:參與運算的量,按二進位制位參與計算,&,
|,!,~,
^,<<,>>
賦值運算子:
用於賦值運算,分為簡單賦值(=)
,和一些復合算數賦值和復合位運算賦值
,三類共
11種。
條件運算子
:這是乙個三目運算子,用於條件求值
(?:)
逗號運算子:
用於把若干表示式組合成乙個表示式(,)
指標運算子:取內容*和取位址
&位元組運算子:sizeof
特殊運算子:()
【】(陣列下標),成員運算子(->、.)
2.運算子的優先順序
是怎麼確定的?
優先順序
運算子
名稱或含義
使用形式
結合方向 說明
1 陣列下標
陣列名[
常量表示式
]左到右
() 圓括號
(表示式)/
函式名(
形參表) .
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->
成員名 ++
後置自增運算子
++變數名
單目運算子 --
後置自減運算子
--變數名
單目運算子 2
-負號運算子
-表示式
右到左
單目運算子
(型別)強制型別轉換
(資料型別
)表示式 ++
前置自增運算子
變數名++
單目運算子 --
前置自減運算子
變數名--
單目運算子 *
取值運算子
*指標變數
單目運算子 &
取位址運算子
&變數名
單目運算子 !
邏輯非運算子
!表示式
單目運算子 ~
按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式)
3 /
除 表示式/
表示式左到右
雙目運算子 *
乘表示式*
表示式雙目運算子 %
餘數(取模)
整型表示式/
整型表示式
雙目運算子 4
+ 加表示式+
表示式左到右
雙目運算子 -
減表示式-
表示式雙目運算子 5
<< 左移
變數<<
表示式左到右
雙目運算子
>> 右移
變數》表示式雙目運算子 6
> 大於
表示式》
表示式左到右
雙目運算子
>=
大於等於
表示式》=
表示式雙目運算子
< 小於
表示式<
表示式雙目運算子
<=
小於等於
表示式<=
表示式雙目運算子 7
== 等於
表示式==
表示式左到右
雙目運算子 !=
不等於表示式!=
表示式雙目運算子 8
&按位與
表示式&
表示式左到右
雙目運算子 9
^按位異或
表示式^
表示式左到右
雙目運算子 10
|按位或
表示式|
表示式左到右
雙目運算子 11
&&邏輯與
表示式&&
表示式左到右
雙目運算子 12
||邏輯或
表示式||
表示式左到右
雙目運算子 13
?:條件運算子
表示式1?
表示式2:
表示式3
右到左
三目運算子 14
=賦值運算子
變數=表示式右到左
/= 除后賦值
變數/=
表示式 *=
乘後賦值
變數*=
表示式 %=
取模後賦值
變數%=
表示式 +=
加後賦值
變數+=
表示式 -=
減後賦值
變數-=
表示式
<<=
左移後賦值
變數<<=
表示式
>>=
右移後賦值
變數》=
表示式 &=
按位與後賦值
變數&=
表示式 ^=
按位異或後賦值
變數^=
表示式 |=
按位或後賦值
變數|=
表示式 15
, 逗號運算子
表示式,
表示式,…
左到右
從左向右順序運算
同一優先順序的運算子,運算次序由結合方向所決定
簡單歸納為:!>算數運算子
>
關係運算子
>&&>||>
賦值運算子 3、
什麼時候使用條件表示式比較多?
如果在條件語句中,只執行單個的賦值語句時,使用的比較多。
4.條件運算子的用法
條件運算子:(?:)
用乙個簡單的例子來說明。
if(a>b)
else
用條件運算子表示的條件表示式為:max=(a>b)?a:b;
5、邏輯運算子參與運算時注意什麼?
邏輯運算子
|兩邊的條件,只要有
乙個為真,則
結果為真,
只要有乙個為假,其加過為假。 6、
++,--操作符
的注意事項有哪些?
++是自增1,
--是自減1。
++a是自增1再用
a進行運算,
a++是先將
a用於運算再自增1
7、位操作為什麼可以有效提高程式執行的效率?
在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用「位運算」來完成所有的運算和操作,其非常的靈活。
8、位運算中的左移和右移
是什麼樣的?
左移和右移一樣,將數字以二進位制補碼的形式,向左或向右依次移動指定的位數
左移:格式:需要移位的數字
<< 移位的次數
運算規則:按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄
),低位的空位補零。
數學意義:在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的
1次方,左移
n位就相當於乘以
2的次方。
右移:格式:需要移位的數字 >> 移位的次數
運算規則:按二進位制形式把所有的數字向右移動對應的位數,低位移出(捨棄
),高位的空位補符號位,即正數補零,負數補1。
數學意義:右移一位相當於除2,右移
n位相當於除以2的
n次方。這裡是取商。 9、
位運算的作用
?在計算機中,資料的位是可以操作的最小的資料單位,一般的位操作是用來控制硬體的,或者進行行資料的交換,但是靈活的位操作可以有效地提高程式執行的效率。
10、位運算除了提高運算效率外,再嵌入式系統程式設計中,還有啥廣泛運用?
位間的與(&)、或(
i)、非(~)。
程式設計珠璣第三章
第三章寫的有點太簡單了,可能作者是想在後面章節裡再詳細說吧!這一章就是作者說的幾句話印象還是很深刻。程式設計師在節省空間方面無計可施時,將自己從 中解脫出來,退回起點並記者並集 中精力研究資料,常常能有奇效。資料的 表示形式是程式設計的根本。正如人月神話的作者說 只要給我你設計的表,我就對你的程式一...
第三章 函式程式設計
函式是一段具有特定功能的 可重用的語句組,用函式名來表示並通過函式名進行功能呼叫。函式也可以看作是一段具有名字的子程式 特性 1.減少重複 2.使程式變的可擴充套件 3.使程式變得易維護 語法定義 def sayhi 函式名 print hello,i m nobody sayhi 呼叫函式 可以帶...
第三章程式設計題
每乙個程序都有乙個pcb 程序控制塊 其中包含程序執行的狀態等一系列資訊。當父程序fork 出乙個子程序,子程序執行結束後作業系統會 子程序使用的記憶體 開啟的檔案等資源。但是,依舊會保留pcb,因為其中包含子程序結束時的狀態等資訊,按理來說作業系統想把這個資訊傳遞給它的父程序。因此,父程序呼叫wa...