c 中的下標運算子有什麼作用,c 中的運算子過載主要用來做什麼?

時間 2021-08-13 22:26:36

1樓:仙戈雅

c\c++ 下標運算子“” 的具體作用是取地址運算子,簡稱取址符,它的語義是當前變數的首地址加取中括號裡面的偏移量就可定位指定下標的值在記憶體儲存的位置。

2樓:微控制器與plc程式筆記

以下是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 大於關係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 <>=以位元右移賦值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++中的運算子過載主要用來做什麼?

3樓:匿名使用者

主要是用來使物件之間可以做運算操作的.

比如,你定義了一個類的物件a而這個物件中有一個資料,又定義了一個b物件也有一個資料,你須要使用a+b來計算這兩個物件中資料的合,就須要運算子過載.

運算子過載不光是可以過載四則運算的.也可以過載 下標運算子,<< >>輸入輸出運算子等等.

運算子過載主要的用途只是為了讓運算子其前後跟後的物件可以直接像物件內的資料一樣運算

4樓:匿名使用者

主要用來

定義類的運算,比如你定義個複數類,

然後就需要定義複數的加減乘除。

一個很簡單的例子,平面中質點速度就是個複數。

定義了速度的加減乘除,還可以定義其他運算,如點積,×積。

然後用這個類的時候,直接用過載的運算子運算,直觀,簡單。

顯然,你可以不用運算子過載,而是直接用函式實現複數的各種運算。

但是運算子直觀。

5樓:匿名使用者

自定義運算子,用來實現符合自己實際的需要。

6樓:匿名使用者

個人理解:就是為了實現不同物件裡面成員的運算

c++中的運算子過載一般用在什麼地方,以及有什麼用處?

7樓:匿名使用者

運算子過載一般用在類的實現中。

比如,定義了一個類

class myclass

{};然後定義了兩個物件:

myclass item1, item2;

你可能需要進行兩個物件相加的運算。

item1 + item2

但是,系統內部本身是不支援這種操作的,此時,你就需要過載 + 運算子,實現兩個物件相加。

其他的運算子也大同小異。

8樓:匿名使用者

過載運算子只是在讓大家明白過載的思想,剛剛開始進入程式設計不會遇到過載運算子的例子。除非以後開發大的專案需要用到了運算子的過載。比方說,現在的運算子只能對整形 浮點型 字元型的去操作。

以後咱們想定義一個類的例項讓這個類的物件直接就參與運算 (也就是運算子不再侷限在型別變數上,而是可以實現在類的物件上)

c++中的::符號的作用

9樓:祜風

1、::是c++裡的“作用域運算子”。作用域符號::的前面一般是類名稱,後面一般是該類的成員名稱。

2、其作用主要有三點:

(1)標識作用域的級別;

:: 用在全域性函式或變數前,表示是全域性函式或變數(2)標識成員屬於哪個類

a,b表示兩個類,在a,b中都有成員member。那麼a::member就表示類a中的成員member

b::member就表示類b中的成員member(3) 限定成員的作用範圍

應用於名稱空間namespace定義的實體後面。

10樓:匿名使用者

::域作用符,第一個::表示listen用的全域性函,這麼用是因為在類裡或某個名稱空間裡可能存在著和這個全域性函式相同名的函式,如果不用::

,編譯器會預設呼叫類裡或某個名稱空間裡的函式,加上它則表示呼叫的是那個全域性的listen。

11樓:匿名使用者

在類裡面 這個事解構函式 如果不加 系統會預設設定一個解構函式 系統預設設定的解構函式為空值

解構函式的呼叫時這樣的:

越早宣告越晚呼叫 例如這個題目: 它在建立類b的物件b時, 呼叫類b的建構函式 ,而該建構函式 自動先呼叫 基類的建構函式 。當完成 建立物件後 ,主函式 結束, 開始 析構 主函式 ,然後 析構 派生類b ,然後 再析構 基類 a。

然後此程式讀完。

函式呼叫的過程是: a() b() ~b() ~a()全部過程如上 則輸出結果是 1342

12樓:

作用域限定符或者稱作用域運算子

13樓:

標識該函式是在全域性名稱空間

14樓:匿名使用者

這個是作用域識別符號,作用既是來訪問所在作用域裡的變數,函式等內容。這裡是表示呼叫api函式,呼叫api函式的方式既是這樣。

c++中為什麼要用輸入輸出運算子過載,有什麼作用?。。。。急用。。。新手不懂!

15樓:救世大英雄啊

比如<<,在平時他是輸出普通變數等,如int a=10;cout<類的物件,如class people{};

people p();

你想直接用cout<

16樓:匿名使用者

簡單解釋一下,a、b為整型,那麼可以直接a+b,如果a、b是類student的物件呢?a+b表示什麼?過載運算子最大的用處就是可以用於兩個物件或者物件與常規型物件之間,a+b你可以過載'+'為類student的分數相加,或者其他(年齡、錢數...

),明白?

17樓:匿名使用者

過載運算子主要是為了。。。比如 沒有 string型別 在c裡面你想要 讓 char * p1 = "123" char *p2 = "456" p1 + p2 。。。這種結果無法預知的,但是你通過string 類過載 + 運算子 你可以 string p1 string p2 .............

p1 + p2 這種就是正確的了。主要方便運算操作

C 怎樣過載下標運算子,C 運算子過載時過載賦值運算子和下標運算子時型別中的 是什麼意思?為什麼要加?

過載運算 在需要過載的類中宣告 classname operator int i 就可以了。引數i是代表傳入的 括號中的值 索引 因為我們使用 的使用會用到類似 a i value的表示式去賦值,所以返回類的引用可以支援賦值操作。這裡有我修改的一段示例 上上西 給個示例,以樓上 為基礎,再包含標頭檔...

關於c 運算子優先順序的問題,C 中運算子優先順序的問題

運算子優先順序 在實際的開發中,可能在一個運算子 現多個運算子,那麼計算時,就按照優先順序級別的高低進行計算,級別高的運算子先運算,級別低的運算子後計算,具體運算子的優先順序見下表 運算子優先順序表 優先順序 運算子 結合性 1 從左到右 2 正 負 從右向左 3 從左向右 4 加 減 從左向右 5...

c 中NEW運算子的用法,C 中new的用法

c 中new運算子使用的一般格式為new 型別 初值 用new分配陣列空間時不能指定初值。如果由於記憶體不足等原因而無法正常分配空間,則new會返回一個空指標null,使用者可以根據該指標的值判斷分配空間是否成功。 吾不笑 new int 開闢一個存放整數的儲存空間,返回一個指向該儲存空間的地址 即...