c objective c運算子優先順序

2021-06-16 16:21:53 字數 2629 閱讀 4193

優先順序

操作符描述

例子結合性1()

->.::

++--

調節優先順序的括號操作符

陣列下標訪問操作符

通過指向物件的指標訪問成員的操作符

通過物件本身訪問成員的操作符

作用域操作符

後置自增操作符

後置自減操作符

(a + b) / 4;

array[4] = 2;

ptr->age = 34;

obj.age = 34;

class::age = 2;

for( i = 0; i < 10; i++ ) ...

for( i = 10; i > 0; i-- ) ...

從左到右2!

~++---

+*&(type)

sizeof

邏輯取反操作符

按位取反(按位取補) 

前置自增操作符

前置自減操作符

一元取負操作符

一元取正操作符

解引用操作符

取位址操作符

型別轉換操作符

返回物件占用的位元組數操作符

if( !done ) ...

flags = ~flags;

for( i = 0; i < 10; ++i ) ...

for( i = 10; i > 0; --i ) ...

int i = -1;

int i = +1;

data = *ptr;

address = &obj;

int i = (int) floatnum;

int size = sizeof(floatnum);

從右到左

3->*

.*在指標上通過指向成員的指標訪問成員的操作符

在物件上通過指向成員的指標訪問成員的操作符

ptr->*var = 24;

obj.*var = 24;

從左到右4*

/%乘法操作符

除法操作符

取餘數操作符

int i = 2 * 4;

float f = 10 / 3;

int rem = 4 % 3;

從左到右5+

-加法操作符

減法操作符

int i = 2 + 3;

int i = 5 - 1;

從左到右

6<<

>>

按位左移操作符

按位右移操作符

int flags = 33 << 1;

int flags = 33 >> 1;

從左到右

7<

<=

>

>=

小於比較操作符

小於或等於比較操作符

大於比較操作符

大於或等於比較操作符

if( i < 42 ) ...

if( i <= 42 ) ...

if( i > 42 ) ...

if( i >= 42 ) ...

從左到右8==

!=等於比較操作符

不等於比較操作符

if( i == 42 ) ...

if( i != 42 ) ...

從左到右9&

按位與操作符

flags = flags & 42;

從左到右10^

按位異或操作符

flags = flags ^ 42;

從左到右11|

按位或操作符

flags = flags | 42;

從左到右

12&&

邏輯與操作符

if( conditiona && conditionb ) ...

從左到右

13||

邏輯或操作符

if( conditiona || conditionb ) ...

從左到右

14? :

三元條件操作符

int i = (a > b) ? a : b;

從右到左15=

+=-=

*=/=

%=&=

^=|=

<<=

>>=

賦值操作符

復合賦值操作符(加法)

復合賦值操作符(減法)

復合賦值操作符(乘法)

復合賦值操作符(除法)

復合賦值操作符(取餘)

復合賦值操作符(按位與)

復合賦值操作符(按位異或)

復合賦值操作符(按位或)

復合賦值操作符(按位左移)

復合賦值操作符(按位右移)

int a = b;

a += 3;

b -= 4;

a *= 5;

a /= 2;

a %= 3;

flags &= new_flags;

flags ^= new_flags;

flags |= new_flags;

flags <<= 2;

flags >>= 2;

從右到左16,

逗號操作符

for( i = 0, j = 0; i < 10; i++, j++ ) ...

從左到右

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...

JS運算子 算術運算子 比較運算子 賦值運算子

兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...

NOT運算子與 運算子

6.4.2 not運算子與 運算子 對於簡單的條件查詢,not運算子與 運算子的功能幾乎沒有什麼區別,那麼not運算子的優勢體現在 呢?答案是它可以與其他運算子組合使用,這一點是 運算子所不能實現的。在6.4.1節已經介紹了not運算子與in運算子組合使用的例子,下面給出乙個not運算子與betwe...