文章中舉了大量的例子,希望讀者可以耐住性子好好讀一下,相信會對指標和引用有底層的了解。
1. 指標
2. * 作用:1.宣告指標變數;2.表示指向(取出對應的普通型變數的值)。
3. 舉例:
例項一:
**:
#includeusing namespace std;
int main()
控制台輸出結果:
指標變數point的值:0x69fef8
指標變數point2的值:0x69fef8
number變數的值:1234
指標變數point所指向的普通變數的值:1234
指標變數point2所指向的普通變數的值:1234
解釋:可以看出:
1.指標變數point中存放的值是它所指向的普通變數number的記憶體位址。也就是說,指標變數point的儲存空間中存放的值是乙個位址。這個位址是它所指向的普通變數的記憶體位址。
2.普通變數number的值可以通過它對應的指標變數point來獲得。
3.但是point的記憶體位址不是它指向的普通變數的記憶體位址,這一點容易混淆。
例項二:
**:
#includeusing namespace std;
typedef struct nodenode;
void f(node *node3)
int main()
控制台輸出結果:
node1: 87654
node2: 9999
head: 87654
head2: 9999
例項三:
**:
#includeusing namespace std;
#define max 4
int main()
}b = a[3]; //把陣列第四行的首位址賦值給指標變數b。
for(i=1;i<=3;i++)
控制台輸出結果:
number變數的值(變數):4321
引用變數refer的值:4321
引用變數refer2的值:4321
number變數的值(變數):5678
引用變數refer的值:5678
引用變數refer2的值:5678
解釋:可以看出
1.普通變數和它對應的引用變數共用同一塊記憶體空間。可以把引用變數refer視作是普通變數number的別名,名稱不同,但是記憶體位址相同。refer和number的值是相同的。
2.refer值的改變會引起number值的改變。
3. 指標和引用的區別
1. 引用在定義的時候必須要初始化。指標可以先宣告再初始化。
2. 引用的值不可修改。指標的值可以修改。
3. 引用不可為空,必須連線乙個記憶體位址。指標可以為空(null)。
錯誤示例:
int number = 4321;
int &refer;
refer = number;
錯誤資訊:error: 'refer' declared as reference but not initialized (這個引用沒有被初始化)。
正確示例:
int number = 4321;
int number2 = 5678;
int &refer = number;
refer = number2; //變數的值之間的賦值
cout << "number變數的值(引用refer):" << refer << endl;
cout << "number變數的值(number):" << number << endl;
輸出資訊:
number變數的值(引用refer):5678
number變數的值(number):5678
4.結構體
1. 我們主要討論幾種常見的形式。
typedef struct nodethreadnode,*threadtree;
2. 用以上的結構體宣告變數
threadnode node1;
node1.data = 9999;
threadnode *node2 = (threadnode *)malloc(sizeof(threadnode));;
node2->data = 8888;
node2 = &node1; //node2暫時性的連線node1的記憶體位址
node2->data = 7777; //node2的值改變node1的值也改變。
threadtree tree1 = (threadtree)malloc(sizeof(threadtree));
tree1->data = 1111;
threadtree &tree2= tree1; //引用型別,tree2永遠連線tree1的記憶體位址
tree2->data = 2222; //tree2改變tree1也改變
cout<< "node1: " node1: 7777
node2: 7777
tree1: 2222
tree2: 2222
C 中的指標和引用
注意本人的部落格都遷移到本人自己搭建的部落格位址,通過此處可檢視。本人在工作之餘學習c 但是可能在訓練過程種,會通過各種刷題的形式去提公升自己,但是這樣在一些公司 尤其是大廠 面試的時候會很尷尬。而c 種的指標和引用有什麼區別和聯絡呢,現在就來說道說道,如有錯誤,敬請大家指正。首先我們來說道說道指標...
c 中的指標和引用
首先 指標是儲存的變數的位址,引用是變數的別名,這個必須記住 單純的給變數取別名沒有任何的意義,作為引數傳遞,能保證引數傳遞過程中不產生任何的副本 引用可以直接操作變數,但指標的話必須通過 p 間接的操作變數,指標可讀性行比較低 引用必須要有初始值 int a 常量必須要有初始值 const int...
c 中的引用和指標
參考回答 定義 1 引用 c 是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用就是c 對c語言的重要擴充。引用就是某一變數的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 ...