摘要
本文的主要目的是認識指標。
1. 指標的含義
指標是一種資料型別!
指標和其他資料型別(double, float, int...)一樣需要占用記憶體空間;通常情況下,double占用8個位元組,float占用4個位元組,int占用4個位元組,指標占用2個位元組。
指標和其他資料型別一樣同樣有值,唯一不同的是指標這種資料型別的值存放的是位址。
2. 指標中的符號
& 獲取物件的位址。
* 取出指標變數存放位址指向的值。
注意,&獲取記憶體位址意思非常顯然,*的用法一開始會出現混淆的問題。下面我們解決這個問題。
3. 解決指標符號*使用的問題
如圖3所示,指標*p的賦值語句,p = value,該語句value賦到了valuea。*是取值操作,*p取出的值是valueb。
4. 看懂圖3之後,下邊的例子就非常容易理解了。
char stuname, name; // 定義字串變數stuname, name
char *pstu; // 定義指向字元型變數的指標pstu
char *pnew; // 定義指向字元型變數的指標pnew
pstu = &stuname; // 取變數stuname的位址,並賦予指標變數pstu
pnew = pstu; // 把指標變數pstu的值賦給pnew
name = *pnew; // 把pnew指向的記憶體單元的值賦給變數name
CUDA 4 初探平行計算
本文將計算兩個向量 陣列 的和。分別在cpu和gpu上進行計算。平行計算 include include include using namespace std define n 200000 void add cpu int a,int b,int c global void add int a,...
顯示卡,驅動和CUDA的認識
之乎 顯示卡 gpu 主流是nvidia的gpu,深度學習本身需要大量計算。gpu的平行計算能力,在過去幾年裡恰當地滿足了深度學習的需求。amd的gpu基本沒有什麼支援,可以不用考慮。驅動 沒有顯示卡驅動,就不能識別gpu硬體,不能呼叫其計算資源。但是呢,nvidia在linux上的驅動安裝特別麻煩...
關於指標的認識
在寫圖的鄰接矩陣轉化為圖的鄰接表儲存時,碰到了乙個問題,為每個節點建立好vnode之後,每個節點的arcnode無法正確建立。在除錯的過程中,發現程式有新建節點的操作,但是沒有與之前的鍊錶指標關聯,這個問題本質上是線性表的建立問題。尋找程式的錯誤,發現首先是新建操作的p節點沒有回到起始位置,也就是沒...