關於C/C++中的點操作符和箭頭操作符
箭頭操作符“->”用來引用指標物件。
舉例子說明一下:
比如,我有一個物件darkray。那麼我可以通過”.”來呼叫darkray類中中的成員變數。
但是如果darkray是指標的話,就不能通過”.”來呼叫,而只能使用”->”來呼叫了。
放到C語言中不存在物件的概念的。
點操作符用得到的地方,大多在結構,比如:
struct darkray{
float coder;
int geek;
};
在程式中
darkray fuckyou={
2.3,
350
};
我們就可以用fuckyou.coder來取得結構中的值。
這時是不能使用”->”來呼叫的,”->”符號指標對指標來說的。
只有在如下情況可以使用”->”
darkray* fuckme;
fuckme->coder=2.33;
此時fuckme為一個darkray結構的地址指標。所以可以使用”->”,而此時就不能使用
“.”來操作。因為”.” “相當於”物件的成員呼叫。
不知道說明白了沒有,大概就是這個意思吧…
相關推薦
C++中點操作符和箭頭操作符的區別
/* * "."與"->"的區別 * "."的左邊必須是結構體名/物件名的實體 * "->":的左邊必須是結構體名/物件名的指標 * 輸出:輸入年月日時分秒,並且輸出,輸出形式為年/月/日
C++點操作符和箭頭操作符
相同點:兩個都是二元操作符,其右操作符是成員的名稱。 主要看左邊的操作符,左邊是指標用箭頭,否則用點操作符 不同點:點操作符左邊的運算元是一個“結果為結構”的表示式; 箭頭操作符左邊的運算元是一個指向結構的指標。 首先介紹一下C
關於C/C++中的點操作符和箭頭操作符
點操作符 “.”用來引用普通物件。 箭頭操作符“->”用來引用指標物件。 舉例子說明一下: 比如,我有一個物件darkray。那麼我可以通過”.”來呼叫darkray類中中的成員變數。 但是如果darkray是指標的話,就不能通過”.”來呼叫,而只能使用”->”
自增操作符和箭頭操作符
1.自增和自減操作符 自增(++)和自減(--)操作符為物件加1或減1操作提供了方便簡短的實現方式。有前置和後置兩種使用形式。 前置操作使該運算元加1或減1,操作結果是修改後的值。後置運算元同樣對運算元加1或(減1),但操作後產生運算元原來的、未修改的值作為表示式的結果:
C++中箭頭操作符和點操作符
舉個例子: struct MyStruct { int member_a; }; (1)假設有個變數:MyStruct s,這個變數是一個類型別物件,那麼獲取物件
2.16 C++類與new和delete操作符
運行 out 可能 clas cout std 存儲 分配 程序 參考: http://www.weixueyuan.net/view/6347.html 總結: 當我們需要為類對象動態分配存儲空間時,我們應該使用C++語言提供的new與new[]操作符,而不要使用C
C#中的is和as操作符區別小結
devel 獲取 d3d 數據 bottom 技術 datagrid idv center 1. is 是驗證操作對象是不是自己希望的 運算公式:對象 is 類型 返回true:對象是指定類型 返回false:對象不是指定類型 2. as 是將對象轉換成指定類型
C++學習筆記42——過載操作符之箭頭操作符
箭頭(->)操作符,看起來很像二元操作符,左運算元是類物件,右運算元是類成員,即使如此,箭頭操作符的過載函式是沒有第二個形參的(第一個是隱含形參this),理解起來有點難度; 函式語句為: a->b;(其中,b可以是函式或者成員;) 步驟1. 如果a是指
不要忽略c#中的using和as操作符
是不是很多人不用c#中的using和as操作符?甚至不知道? 其實這2個操作符在小處非常有用。 1、using 按照msdn的解釋 using 語句定義一個範圍,在此範圍的末尾將處理物件。 舉例: class TestUsing:IDisposable
邏輯操作符和關係操作符
! 邏輯非 !expr < 小於 expr < expr <= 小於等於 expr <= expr > 大於 expr > expr >= 大於等於 expr >= expr == 相等
C# new關鍵字和對象類型轉換(雙括號、is操作符、as操作符)
對象 分配 key system.in let main false ring true 一、new關鍵字 CLR要求所有的對象都通過new來創建,代碼如下: Object obj=new Object(); 以下是new操作符做的事情 1、計算類型及其所有基類型(一直
淺析c#中==操作符和equals方法
邏輯 mce 需求 ram margin width 通過 否則 可用 在之前的文章中,我們講到了使用C#中提供的Object類的虛Equals方法來判斷Equality,但實際上它還提供了另外一種判斷Equality的方法,那就是使用==運算符。許多童鞋也許會想當然的
[C和指標] 4-語句、5-操作符和表示式、6-指標
第4章 語句 4.1 表示式語句 C並不存在專門的“賦值語句”,賦值就是一種操作,就像加法和減法一樣,所以賦值就在表示式內進行。 你只要在表示式後面加上一個分號,就可以把表示式轉變成語句。所以下面這兩個表示式實際上是表示式語句,而不是賦值語句。 x = y + 3; ch = getchar();
C#中如何利用操作符過載和轉換操作符 (轉載)
操作符過載 有的程式語言允許一個型別定義操作符應該如何操作型別的例項,比如string型別和int型別都過載了(==)和(+)等操作符,當編譯器發現兩個int型別的例項使用+操作符的時候,編譯器會生成把兩個整數加到一起的程式碼。當編譯器發現兩個string型別的例項使用+操作符的時候,編譯器會生成把兩個
C++筆記 第四十課 前置操作符和後置操作符---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第四十課 前置操作符和後置操作符 1.值得思考的問題 下面的程式碼有沒有區別?為什麼?答案是5.真正的區別 i++; //i的值作為返回值,i自增1 ++i; // i自增1
【C++】C++ new和delete操作符
C++新增了兩個關鍵字,new 和 delete:new 用來動態分配記憶體,delete 用來釋放記憶體。 用 new 和 delete 分配記憶體更加簡單: int *p = new int; //分配1個int型的記憶體空間 delete p; //釋放記憶體 ne
C語言操作符和表示式
目錄 一、操作符 C語言操作符的一些需要注意的坑。 二、表示式 問題表示式問題在哪裡。 正文 一、操作符 算數操作符 + - * / % 注意點 除了%操作符外,其他的幾個算數操作
C++ 拷貝建構函式和過載賦值操作符不能相互呼叫
拷貝建構函式呼叫過載賦值操作符,過載賦值操作符呼叫拷貝建構函式的寫法都是沒有意義的。首先:拷貝建構函式的存在意義--------是通過已有的物件構造新的物件,構造完畢後才有兩個物件;過載賦值操作符的意義-----------將一個物件的值賦給另一個物件,兩個物件都已經構造完畢了。拷貝建構函式----呼叫---
C#過載操作符==和!=時注意問題
public class MyClass { public int ID; /*public static bool operator ==(MyClass c1, MyClass c
C++類和new、delete操作符和堆和棧記憶體的分配
如果你是Java、C#、PHP程式設計師,那麼會對 new 非常熟悉,在這些程式語言中,只能通過 new 來建立物件。 在C++中,你可以像定義變數一樣來建立物件,如: Studentstu; //物件已被例項化,已分配記憶體空間,可以使用了stu.say();