個人總結
首先定義:
struct binarytreenode
;
定義變數:
1、binarytreenode
* ptreenode;
2、binarytreenode
* * n_ptreenode; 3、
binarytreenode
k;4、
binarytreenode
& m=k; (引用變數必須初始化)
定義:位址也稱為指標,即變數所儲存區域的第乙個位元組的位址。
指標變數:這種型別的變數存放的是記憶體位址值
與指標有關的運算子:
&——取址運算子 :返回變數的記憶體位址
例如:ptreenode=&k; (取變數k的位址 賦給 指標變數ptreenode 即 指標變數ptreenode
指向 binarytreenode 型別的變數k)
注意:n_ptreenode=&ptreenode 是返回指標變數ptreenode的位址 而非它儲存的值(k的記憶體位址)
&運算子它既可以用於指標變數,也可用於非指標變數
*——間接訪問運算子 :訪問 指標指向的變數
binarytreenode
s=*ptreenode; (將 指標變數ptreenode指向的變數k的值取出,並賦給s)
*n_ptreenode 是 指向binarytreenode型別的指標
注意:*運算子它只能用於指標型別的變數
用法: 《資料型別》 & 《引用變數名》 = 《變數名》; 例如binarytreenode
&m3=k; (等號右邊必須為變數)
定義:乙個已定義變數的別名,操作引用型別的變數(別名)即操作這個已定義的變數,
引用型別的變數沒有單獨的儲存空間,與被引用的變數使用同一空間;
(上圖為 簡化模型 m kn_ptreenodeptreenode 可能不連續 而且binarytreenode 簡化了
)將基本型別變數的值 拷貝 給 形參變數
將變數的位址 拷貝 給 形參變數 (個人認為傳址 也是 一種特殊的 傳值 只是是位址值而已)
指標和引用都是 傳址 基本型別 都是傳值
想通過 函式引數改變乙個變數 必須通過這個變數的位址(它的引用或指向它的指標) 如果要修改的這個變數的型別是指標,這要通過 該指標的位址 即 指向該指標的指標
例如:
void change(binarytreenode * ptreenode,binarytreenode & m)
想要修改指標
ptreenode 就必須 用它的位址 即指向
ptreenode的指標n_ptreenode
上面的**中
ptreenode指向的物件 不會改變 m被引用的變數 將 改變,是另乙個了
( 他們分別修改的變數 分別是 指標變數ptreenode
和 基本變數m ptreenode它指向的型別 )
void change2(binarytreenode * ptreenode,binarytreenode & m)
上面的**中ptreenode指向的物件 將會被修改 m被引用的變數 將會被修改
( 他們分別修改的變數 分別是 指標變數ptreenode它指向的型別
和 基本變數m ptreenode它指向的型別 )
指標.h檔案
#includeusing namespace std;
struct binarytreenode
;
指標.cpp檔案
#include"指標.h";
//定義變數:
binarytreenode * ptreenode;
binarytreenode * * n_ptreenode;
binarytreenode k;
binarytreenode & m=k;
void change(binarytreenode * ptreenode,binarytreenode & m)
void main(){
k.m_nvalue=5;
//m=k;
ptreenode=&m;
n_ptreenode=&ptreenode;
binarytreenode s=*ptreenode;
cout
C 傳值 傳址 傳指標 傳引用
相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...
傳值,傳址和傳引用
傳值方式 將實參的值拷貝給函式或方法,在函式內對形參進行操作,操作的物件是實參的拷貝,對實參本身沒有影響,在函式結束返回後,形參被丟棄釋放,實參的內容不會被改變。c 一條基本原則 在預設情況下,引數只能以值傳遞的方式給函式,被傳遞到函式的只是變數的值,永遠不會是變數本身。void exchange ...
傳值 傳址和傳引用
在編寫個人函式的時候,你將受到c 中一條基本原則的限制 在預設的情況下,引數只能以值傳遞的方式給函式。這句話的理解是 被傳遞到函式的只是變數的值,永遠不會是變數本身。舉例如下 include void changeage int age,int newage 如果想要實現計畫功能,需要怎麼改?mai...