wiki中找到 c/c++的運算優先順序列在如下:
優先順序運算子
敘述示例
過載性結合性
1
::
作用域解析(c++專有)
class::age = 2;
否
由左至右
2
++
字尾遞增
i++--
字尾遞減
i--{}
組合
()
函式呼叫或變數初始化
c_tor(int x, int y) : _x(x), _y(y * 10) {}
陣列訪問
array[4] = 2;
.
以物件方式訪問成員
obj.age = 34;
否->
以指標方式訪問成員
ptr->age = 34;
dynamic_cast
執行時檢查型別轉換(c++專有)
y& y = dynamic_cast(x);
否static_cast
未經檢查的型別轉換(c++專有)
y& y = static_cast(x);
否reinterpret_cast
重定義型別轉換(c++專有)
int const* p = reinterpret_cast(0x1234);
否const_cast
更改非常量屬性(c++專有)
int* q = const_cast(p);
否typeid
獲取型別資訊(c++專有)
std::type_info const& t = typeid(x);
否3
++
字首遞增
++i由右至左
--
字首遞減
--i+
一元正號
int i = +1;
-
一元負號
int i = -1;
!
not
邏輯非
!
的備用拼寫
if (!done) …
~
compl
按位取反
~
的備用拼寫
flag1 = ~flag2;
(type)
強制型別轉換
int i = (int)floatnum;
*
取指標指向的值
int data = *intptr;
&
取變數的位址
int *intptr = &data;
sizeof
某某的大小
size_t s = sizeof(int);
否new
動態記憶體分配(c++專有)
long* pvar = new long;
new
動態陣列記憶體分配(c++專有)
long* array = new long[20];
delete
動態記憶體釋放(c++專有)
delete pvar;
delete
動態陣列記憶體釋放(c++專有)
delete array;
4
.*
成員物件選擇(c++專有)
obj.*var = 24;
否由左至右
->*
成員指標選擇(c++專有)
ptr->*var = 24;
5
*
乘法
int i = 2 * 4;
/
除法
float f = 10.0 / 3.0;
%
模數(取餘)
int rem = 4 % 3;
6
+
加法
int i = 2 + 3;
-
減法
int i = 5 - 1;
7
<<
位元左移
int flags = 33 << 1;
>>
位元右移
int flags = 33 >> 1;
8
<
小於關係
if (i < 42) …
<=
小於等於關係
if (i <= 42) ...
>
大於關係
if (i > 42) …
>=
大於等於關係
if (i >= 42) ...
9
==
eq
等於關係
==
的備用拼寫
if (i == 42) ...
!=
not_eq
不等於關係
!=
的備用拼寫
if (i != 42) …
10
&
bitand
位元 and
&
的備用拼寫
flag1 = flag2 & 42;
11
^
xor
位元 xor(獨佔or)
^
的備用拼寫
flag1 = flag2 ^ 42;
12
|
bitor
位元 or(包含or)
|
的備用拼寫
flag1 = flag2 | 42;
13
&&
and
邏輯 and
&&
的備用拼寫
if (conditiona && conditionb) …
14
||
or
邏輯 or
||
的備用拼寫
if (conditiona || conditionb) ...
15
c?t:f
三元條件運算
int i = a > b ? a : b;
否由右至左
16
=
直接賦值
int a = b;
+=
以和賦值
a += 3;
-=
以差賦值
b -= 4;
*=
以乘賦值
a *= 5;
/=
以除賦值
a /= 2;
%=
以取餘數賦值
a %= 3;
<<=
以位元左移賦值
flags <<= 2;
>>=
以位元右移賦值
flags >>= 2;
&=
and_eq
以位元and賦值
&=
的備用拼寫
flags &= new_flags;
^=
xor_eq
以位元xor賦值
^=
的備用拼寫
flags ^= new_flags;
|=
or_eq
以位元or賦值
|=
的備用拼寫
flags |= new_flags;
17
throw
丟擲異常
throw eclass(「message」);
否18
,
逗號運算子
for (i = 0, j = 0; i < 10; i++, j++) …
由左至右
基本排序演算法c
氣泡排序 基本思想 兩兩比較待排序的數,發現反序時交換,直到沒有反序為止。public static void bubblesort int r if noswap 快速排序 基本思想 在待排序數列中任選出乙個數作為基準,用這個基準將數列劃分為左右兩個子區,使得左子區的數都不大於基準數,而右子區的數...
C 實現的基本演算法
using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m iarrary.length m console.w...
C 基本演算法練習一
1.計算兩個整數的和,如果這兩個數字相等,那麼計算這兩個數字和的三倍 public intmethod int first,int second 2.寫乙個程式實現n和51的差的絕對值,如果n大於51那麼請返回差的絕對值的三倍public intmethod int n 3.寫乙個程式程式來檢查兩個...