指標的點運算和箭頭運算(->)
指標的點運算和箭頭運算(->)
(其實點運算是結構體變數訪問其成員的操作符
箭頭運算是結構體指標訪問其指向的成員變數的操作符
)
突然發現指標的兩個運算子我是不太清楚的,就翻書搞了下:其實點運算和箭頭運算都可以當作訪問指標所指向的 結構體或者類物件的成員是用的操作符。比如:
struct song
{
int a;
}
有這樣一個結構體,定義:
song s;
s.a=1;
song *p;
p=&s;
那麼要訪問指標p所指向的記憶體:
(*)p.a 和 p->a 是等價的
PS:
1.點運算比*運算優先順序高,故如果用 . 運算,括號不可省。因為(*)p是指標怕指向的結構體變數,故可以用點運算來訪問其成員
2.而箭頭運算只能指標用,比如 聲名 int *p
p是指標,*p就是p所指向的一個int 變數的記憶體
另外附一篇blog參考
http://blog.csdn.net/taric_ma/article/details/7397362
相關推薦
指標的點運算和箭頭運算(->)
指標的點運算和箭頭運算(->) (其實點運算是結構體變數訪問其成員的操作符 箭頭運算是結構體指標訪問其指向的成員變數的操作符 ) 突然發現指標的兩個運算子我是不太清楚的,就翻書搞了下:其實點運算和箭頭運算都可以當作訪問指標所指向的 結構體或者類物件的成員是用
C語言中指標初始化和常規運算
1. 指標初始化注意須知 <1>指標變數和普通變數一樣,外部或者靜態指標變數若未初始化,則被自動初始化為NULL,它的值為0(ASCII字元NULL的程式碼)。 <2>可以
Java運算符使用總結(重點:自增自減、位運算和邏輯運算)
運算 計算器 可讀性 過多 移位運算 style avi 學會 new Java運算符共包括這幾種:算術運算符、比較運算符、位運算符、邏輯運算符、賦值運算符和其他運算符。(該圖來自網絡) 簡單的運算符,就不過多介紹使用了,可自行測試。關於賦值運算,可以結合算術運
補充知識:三元運算和邏輯運算
round 玩家 邏輯運算 ror info 基於 列表 條件表達式 表示 一. 邏輯運算符和邏輯表達式 邏輯表達式是用邏輯運算符和變量連接起來的式子。任何語言的邏輯運算符都一般分為3種——邏輯與、邏輯或和邏輯非。C、Java語言的邏輯運算符用&&、‖、
C 語言結構體之點運算子( . )和箭頭運算子( -> )的區別
很多時候,在對結構體進行相應的編碼時,時而發現是用點運算子( . ),時而是用箭頭運算子( -> );那麼這兩者之間的使用有什麼區別麼? 相同點:兩者都是二元操作符,而且右邊的運算元都是成員的名稱。不同點:點運算子( . )的左邊運算元是一個結果為結構的表示式;
wxPython+Python3+eval實現基本運算和高階運算計算器(School Project)
這其實是我寫的第一次Python圖形化介面程式,當時還不會用Qt,於是就用wxPython寫的,wx相對於Qt來說還是要麻煩一些,介面看上去也沒有Qt高階。博主女生,嘗試把計算器介面換成粉紅色淡藍色,最後發現還是黑灰白的順眼一點。 執行介面如下: 下面是原始碼
C語言:存取結構體成員的點運算子(.)和箭頭運算子(->)的區別
一直以為這兩個是沒有什麼區別的,可以相互替換,今天又翻了一下《C語言核心技術》,明白了其中的奧妙。 相同點:兩個都是二元操作符,其右操作符是成員的名稱。 不同點:點操作符左邊的運算元是一個“結果為結構”的表示式; 箭頭操作符左邊的運算元是
位運算和邏輯運算
public class test ( private static int j = 0; private static boolean methodB(int k) ( j += k; return true; ) public static void m
矩陣運算和複數運算
功能說明 實現了矩陣的加法、減法、乘法,並使用冪法求解矩陣的2-範數(原理我還不理解)。 實現了複數的加法、減法、乘法、除法和求解複數的模。 程式碼 matrix.h #pragma once struct matrix { int row; i
c++位運算和邏輯運算(&&和||:邏輯運算子;&和|:按位運算子)
兩者計算結果相同(針對各自的運算物件),只是效能上有差別而已。 &&和||:邏輯運算子 &和|:按位運算子 &&是且的意思,a&&b 兩者都為真才為真. ||是或的意思,a||b 兩者有一為真即真. &,|是位運算子.即對位進行運算,
C++點操作符和箭頭操作符
相同點:兩個都是二元操作符,其右操作符是成員的名稱。 主要看左邊的操作符,左邊是指標用箭頭,否則用點操作符 不同點:點操作符左邊的運算元是一個“結果為結構”的表示式; 箭頭操作符左邊的運算元是一個指向結構的指標。 首先介紹一下C
關於C/C++中的點操作符和箭頭操作符
點操作符 “.”用來引用普通物件。 箭頭操作符“->”用來引用指標物件。 舉例子說明一下: 比如,我有一個物件darkray。那麼我可以通過”.”來呼叫darkray類中中的成員變數。 但是如果darkray是指標的話,就不能通過”.”來呼叫,而只能使用”->”
2.6陣列運算和矩陣運算
1、陣列和標量的運算 陣列可以和一個標量(1X1的矩陣)進行加、減、乘、除運算,其結果將是此標量和陣列中的每一個元素“相加”、“相減”、“相乘”、“相除”; 而經典數學中矩陣和一個標量不能進行加、減運算,只允許矩陣和一個標量進行乘、除運算,並進行相除運算時,標量必須是除數,
C 語言結構體之點運算子( . )和箭頭運算子( -> )的區別
很多時候,在對結構體進行相應的編碼時,時而發現是用點運算子( . ),時而是用箭頭運算子( -> );那麼這兩者之間的使用有什麼區別麼? 相同點:兩者都是二元操作符,而且右邊的運算元都是成員的名
Pandas聚合運算和分組運算
1.聚合運算(1)使用內建的聚合運算函式進行計算1>內建的聚合運算函式sum(),mean(),max(),min(),size(),describe()...等等2>應用聚合運算函式進行計算import numpy as np import pandas as
影象開運算和閉運算
1、原理 影象開運算與閉運算與膨脹和腐蝕運算有關,由膨脹和腐蝕兩個運算的複合與集合操作(並、交、補等)組合成的運算構成。開運算與閉運算依據腐蝕和膨脹演變而來。 1)開運算:先對影象腐蝕後膨脹。 A○S= (AΘS)⊕ S 作用:用來消除小的物體,平滑形狀邊界,並且不改變其面積。可以去除小顆粒噪聲,斷開物體之間
指標和指標運算子一起時的運算規則(比如*p++和*++p的區別)
接下來,通過示例徹底理解自增運算子的兩種用法(自減的用法與之類似,只不過是加1變成了減1)。 1、++i和i++的區別 如清單1(注意程式碼中的註釋): #include <stdio.h> int main(void) {
再談指標運算和地址加減運算的區別
先上程式碼,有下面一段程式碼: //下面是讀取線狀目標的記錄內容的程式碼: procedure OnReadLineShp(ShpFileName:String); var FileHandle:integer; RecordNumber:integer; Co
指標的使用和運算
目錄 [TOC] 指標基礎 指標 即指向某資料的地址 指標是不可以int *p;然後*p=12;這樣賦值的,正確的應該是p=12;或是p=&i之類(p不是int類 而是int*類,當然不能直接給它賦int的值,它是地址啊) 例: #inc
浮點運算和位元組對齊
又到了寫部落格的時間了,今後堅持天天寫一篇,把心得體會分享給大家。 今天再講一個和位元組對齊、浮點運算相關的案例。大家先看下面的程式:本意是要將一個訊號從uw換算為dbm,公式已經簡化了,大家不要深究這個公式,而是要關注這個浮點運算。下面的程式碼