基本演算法 C

2021-07-28 12:53:18 字數 4414 閱讀 3025

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) ...

15c?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;

17throw丟擲異常

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.寫乙個程式程式來檢查兩個...