国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++指針實例說明

2019-11-06 06:17:29
字體:
來源:轉載
供稿:網友

指針是一個變量,其值為另一個變量的地址,即內存位置的直接地址。在使用指針存儲其他變量地址之前,必須對其進行聲明。通過指針,可以簡化一些 C++ 編程任務,另外還有一些任務,如動態(tài)內存分配,沒有指針是無法執(zhí)行的。所以,想要成為一名優(yōu)秀的 C++ 程序員,學習指針是很有必要的。每一個變量都有一個內存位置,每一個內存位置都定義了可使用連字號(&)運算符訪問的地址,它表示了在內存中的一個地址。

實例1感受一下:

#include <iostream>using namespace std;const int max = 3;int main(){	int var1=20;	int var2[max] = {1,10,100};	int *p_var1 = &var1;	int *p_var2;	p_var2 = var2;	cout << "var1的地址:" << &var1 << endl;	cout << "var2_string的地址:" << &var2 << endl;	cout << "the value of var1 is:" << *p_var1 << endl;	for (int i = 0; i < max; i++)	{		cout << "the address of var2[" << i << "]=" << p_var2<<endl;		cout << "the value of var2[" << i << "]="<<*p_var2<<"/n"<<endl;		p_var2++;	}	return 0;}

運行結果:

實例1中,p_var2++實現(xiàn)了指針的遞增運算。

實例2:

#include <iostream>using namespace std;const int max = 3;int main(){	char *PRoverb[] = 	{  "pxx",		"sr",		"my",		"lx" 	};	char *gr = "ur lv is:";	int choice = 0;	cout << "pls chose a num from 1 to 4" << endl;	cin >> choice;	if (choice >= 1 && choice <= 4)		cout << gr << proverb[choice - 1];	else		cout << "sorry,the choice is not in the range" << endl;	return 0;}

運行結果:

實例2中,*proverb是一個指針數(shù)組。指針和數(shù)組是密切相關的。事實上,指針和數(shù)組在很多情況下是可以互換的。例如,一個指向數(shù)組開頭的指針,可以通過使用指針的算術運算或數(shù)組索引來訪問數(shù)組。

實例3:

#include <iostream>using namespace std;int main(){	int  var;	int  *ptr;	int  **PPTr;	var = 3000;	// 獲取 var 的地址	ptr = &var;	// 使用運算符 & 獲取 ptr 的地址	pptr = &ptr;	//獲取地址	cout << "address of var:" << &var << endl;	cout << "address of ptr:" << &ptr << endl;	cout << "address of pptr:" << &pptr << endl;	// 使用 pptr 獲取值	cout << "Value of var :" << var << endl;	cout << "Value available at *ptr :" << *ptr << endl;	cout << "Value available at **pptr :" << **pptr << endl;	return 0;}運行結果:

實例3中定義了一個指向指針的指針。

實例4:

#include <iostream>using namespace std;double getAverage(int *arr, int size);int main(){	int balance[5] = { 1000, 2, 3, 17, 50 };	int *ptr = balance;	double avg;	// 傳遞一個指向數(shù)組的指針作為參數(shù)	avg = getAverage(ptr, 5);	cout << "Average value is: " << avg << endl;	return 0;}double getAverage(int *arr, int size){	int    i, sum = 0;	double avg;	for (i = 0; i < size; ++i)	{		sum += arr[i];	}	avg = double(sum) / size;	return avg;}實例4傳遞指針給函數(shù),同樣此時也可以使用數(shù)組給函數(shù)。參考:

http://www.runoob.com/cplusplus/cpp-pointers.html

http://wenku.baidu.com/link?url=HRLn_BwrA6ctsrmNRXMYN_JakFgtWn8L5jwarlNnagViX_qfm4po8Maw1FhU1iBKXWe1x-qGD5lUw21OQD6W1qlWLoAp7gGG0eq6d4OL92G


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 霍州市| 郸城县| 彝良县| 潮州市| 灵璧县| 电白县| 嘉祥县| 临颍县| 海城市| 武汉市| 梁山县| 大新县| 建德市| 砚山县| 田东县| 鄂尔多斯市| 新闻| 平定县| 翼城县| 莎车县| 顺昌县| 汾阳市| 孟州市| 河西区| 玉溪市| 武邑县| 随州市| 合江县| 务川| 抚顺县| 乌鲁木齐县| 英吉沙县| 金华市| 贡觉县| 岑溪市| 铁岭市| 璧山县| 元谋县| 鄂托克旗| 尼木县| 黄平县|