|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用 ──────────────────────────── & 位邏輯與 位邏輯或 ^ 位邏輯異或 - 位邏輯反 >> 右移 << 左移 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 按位運算是對字節或字中的實際位進行檢測、設置或移位, 它只適用于字符型和整數型變量以及它們的變體, 對其它數據類型 不適用。 關系運算和邏輯運算表達式的結果只能是1或0。 而按位運算的結果可以取0或1以外的值。 要注意區別按位運算符和邏輯運算符的不同, 例如, 若x=7, 則x&&8 的值為真(兩個非零值相與仍為非零), 而x&8的值為0。 移位運算符">>"和"<<"是指將變量中的每一位向右或向左移動, 其通常形式為: 右移: 變量名>>移位的位數 左移: 變量名<<移位的位數 經過移位后, 一端的位被"擠掉", 而另一端空出的位以0 填補, 所以, Turbo C中的移位不是循環移動的。 5.4 Turbo C的特殊運算符 一、"?"運算符 "?"運算符是一個三目運算符, 其一般形式是: <表達式1>?<表達式2>:<表達式3>; "?"運算符的含義是: 先求表達式1的值, 如果為真, 則求表達式2 的值并把它作為整個表達式的值; 如果表達式1 的值為假, 則求表達式3 的值并把它作為整個表達式的值。 例如: main() { int x, y; x=50; y=x>70?100:0; } 本例中, y將被賦值0。如果x=80, y將被賦值100。 因此, "?"運算符可以代替某些if-then-else形式的語句。
二、"&"和"*"運算符 "&"運算符是一個返回操作數地址的單目操作符。 "*"運算符是對"&"運算符的一個補充, 它返回位于這個地址內的變量值, 也是單目操作符。 例如: main() { int i, j, *m; i=10; m=&i; /*將變量i的地址賦給m*/ j=*m; /*地址m所指的單元的值賦給j*/ } 上面程序運行后, i=10, m為其對應的內存地址, j的值也為10。
三、","運算符 ","運算符用于將多個表達式串在一起, ","運算符的左邊總不返回, 右邊表達式的值才是整個表達式的值。 例如: main() { int x, y; x=50; y=(x=x-5, x/5); } 上面程序執行后y值為9, 因為x的初始值為50, 減5后變為45, 45除5為9賦給y。 四、sizeof運算符 sizeof運算符是一個單目運算符, 它返回變量或類型的字節長度。 例如: sizeof(double) 為8 sizeof(int) 為2 也可以求已定義的變量, 例如: float f; int i; i=sizeof(f); 則i的值將為4。
五、聯合操作 Turbo C中有一特殊的簡寫方式, 它用來簡化一種賦值語句, 適用于所有的雙目運算符。其一般形式為: <變量>=<變量><操作數><表達式> 相當于 <變量><操作數>=<表達式> 例如: a=a+b 可寫成 a+=b a=a&b 可寫成 a&=b a=a/(b-c) 可寫成 a/=b-c 5.5 Turbo C運算符的優先級 Turbo C規定了運算符的優先次序即優先級。 當一個表達式中有多個運算符參加運算時, 將按下表所規定的優先級進行運算。 表中優先級從上往下逐漸降低, 同一行優先級相同。 例如: 表達式 10>4&&!(100<99) 3<=5 的值為1 表達式 10>4&&!(100<99)&&3<=5 的值為0 Turbo C運算符的優先次序 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━ 表達式 ┃優先級 ────────────────────────────╂──── ()(小括號) [](數組下標) .(結構成員) ->(指針型結構成員)┃ 最高 ────────────────────────────┃ ↑ !(邏輯非) .(位取反) -(負號) ++(加1) --(減1) &(變量地址)┃ │ ────────────────────────────┃ │ *(指針所指內容) type(函數說明) sizeof(長度計算) ┃ │ ────────────────────────────┃ │ *(乘) /(除) %(取模) ┃ │ ────────────────────────────┃ │ +(加) -(減) ┃ │ ────────────────────────────┃ │ <<(位左移) >>(位右移) ┃ │ ────────────────────────────┃ │ <(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │ ────────────────────────────┃ │ ==(等于) !=(不等于) ┃ │ ────────────────────────────┃ │ &(位與) ┃ │ ────────────────────────────┃ │ ^(位異或) ┃ │ ────────────────────────────┃ │ (位或) ┃ │ ────────────────────────────┃ │ &&(邏輯與) ┃ │ ────────────────────────────┃ │ (邏輯或) ┃ │ ────────────────────────────┃ │ ?:(?表達式) ┃ │ ────────────────────────────┃ │ = += -=(聯合操作) ┃ │ ────────────────────────────┃ │ ,(逗號運算符) ┃ 最低
|