自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)C++指針聲明和指針相關(guān)概念

開(kāi)發(fā) 后端
C++ 指針學(xué)習(xí)起來(lái)有點(diǎn)難,但是很重要。一些 C++ 程序使用指針更容易執(zhí)行,另外其他 C++ 程序,例如動(dòng)態(tài)內(nèi)存分配,沒(méi)有指針就無(wú)法執(zhí)行。

 

[[404887]]

C++ 指針學(xué)習(xí)起來(lái)有點(diǎn)難,但是很重要。一些 C++ 程序使用指針更容易執(zhí)行,另外其他 C++ 程序,例如動(dòng)態(tài)內(nèi)存分配,沒(méi)有指針就無(wú)法執(zhí)行。

每個(gè)變量都是一個(gè)內(nèi)存位置,每個(gè)內(nèi)存位置都定義了其地址,可以使用與號(hào)(&)運(yùn)算符訪問(wèn)該地址,該運(yùn)算符表示內(nèi)存中的地址。

下面代碼考慮以下將打印定義的變量的地址

  1. #include <iostream> 
  2.  
  3. using namespace std; 
  4. int main () { 
  5.    int  var1; 
  6.    char var2[10]; 
  7.  
  8.    cout << "Address of var1 variable: "
  9.    cout << &var1 << endl; 
  10.  
  11.    cout << "Address of var2 variable: "
  12.    cout << &var2 << endl; 
  13.  

輸出如下

  1. Address of var1 variable: 0x61fe1c 
  2. Address of var2 variable: 0x61fe12 

指針聲明

在編程語(yǔ)言中,指針是一個(gè)變量,其值是另一個(gè)變量的地址。與任何變量或常量一樣,您必須先聲明一個(gè)指針,然后才能使用它。

指針變量聲明的一般形式是 :

  1. type *var-name

這里,type是指針的類型;它必須是有效的 C++ 類型,并且var-name是指針變量的名稱。

用于聲明指針的星號(hào)與用于乘法的星號(hào)相同。但是,在此語(yǔ)句中,星號(hào)用于將變量指定為指針。

下面是有效的指針聲明

  1. int    *ip;    // pointer to an integer 
  2. double *dp;    // pointer to a double 
  3. float  *fp;    // pointer to a float 
  4. char   *ch     // pointer to character 

所有指針的值的實(shí)際數(shù)據(jù)類型,無(wú)論是整數(shù)、浮點(diǎn)數(shù)、字符還是其他類型,都是相同的,一個(gè)長(zhǎng)的十六進(jìn)制數(shù),代表同一個(gè)內(nèi)存地址。

不同數(shù)據(jù)類型的指針之間的唯一區(qū)別是指針指向的變量或常量的數(shù)據(jù)類型。

C++ 使用指針

 

  1. #include <iostream> 
  2. using namespace std; 
  3.  
  4. int main(){ 
  5.     int var = 5; 
  6.     int *ip; 
  7.     ip = &var; 
  8.     cout << "變量Var的值:"  << endl; 
  9.     cout << var << endl; 
  10.     cout << "變量Var的中存儲(chǔ)的地址ip:" << endl;  
  11.     cout << ip << endl; 
  12.     cout << "訪問(wèn)指針中可用地址處的值:"
  13.     cout << *ip << endl; 

具體輸出如下

  1. 變量Var的值: 
  2. 變量Var的中存儲(chǔ)的地址ip: 
  3. 0x61fe14 
  4. 訪問(wèn)指針中可用地址處的值:5 

請(qǐng)注意,0x0相當(dāng)于0. 它只是 的十六進(jìn)制表示0。

指針的概念

指針有很多但很簡(jiǎn)單的概念,它們對(duì) C++ 編程非常重要。以下是 C++ 程序員應(yīng)該清楚的幾個(gè)重要的指針概念 -

空指針

如果沒(méi)有要分配的確切地址,將指針 NULL 分配給指針變量。分配為 NULL 的指針?lè)Q為空指針。

  1. #include <iostream> 
  2.  
  3. using namespace std; 
  4. int main () { 
  5.    int  *ptr = NULL
  6.    cout << "The value of ptr is " << ptr ; 
  7.  } 

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

  1. The value of ptr is 0 

在大多數(shù)操作系統(tǒng)上,不允許程序訪問(wèn)地址 0 處的內(nèi)存,因?yàn)樵搩?nèi)存是由操作系統(tǒng)保留的??罩羔槪褐羔樧兞恐赶騼?nèi)存中編號(hào)為0的空間

要檢查空指針,您可以使用 if 語(yǔ)句如下 -

  1. if(ptr)     // succeeds if p is not null 
  2. if(!ptr)    // succeeds if p is null 

指針?biāo)阈g(shù)

指針是一個(gè)地址,它也是一個(gè)數(shù)值;因此,可以像對(duì)數(shù)值一樣對(duì)指針執(zhí)行算術(shù)運(yùn)算。有四種算術(shù)運(yùn)算符可用于指針:++、--、+和-。

“指針++”和“指針--”表示指針?biāo)傅刂返南乱粋€(gè)或前一個(gè)數(shù)據(jù)的地址。

  1. #include <iostream> 
  2. using namespace std; 
  3. int main() 
  4.  int a[5]; 
  5.  int i; 
  6.  int *p; 
  7.  for(i=0; i<5; i++) 
  8.   cin>>a[i]; 
  9.  cout<<endl; 
  10.  for(i=0; i<5; i++) 
  11.   cout<<a[i]<<"  ";//使用數(shù)組名和下標(biāo)訪問(wèn)的方式訪問(wèn)數(shù)組進(jìn)行輸出 
  12.  for(i=0; i<5; i++) 
  13.   cout<<*(a+i)<<"  ";//使用數(shù)組名和指針運(yùn)算訪問(wèn)的方式進(jìn)行輸出 
  14.  for(p=a; p<(a+5); p++) 
  15.   cout<<*p<<"  ";//使用指針變量訪問(wèn)的方式進(jìn)行輸出 
  16.  return 0; 

運(yùn)行結(jié)果

  1.  
  2. 1  2  3  4  5  1  2  3  4  5  1  2  3  4  5 

 【編輯推薦】

 

責(zé)任編輯:姜華 來(lái)源: Python之王
相關(guān)推薦

2011-07-13 16:14:53

C++引用指針

2010-02-02 16:15:38

C++變量聲明

2014-01-24 09:49:01

C++指針

2021-12-21 15:31:10

C++語(yǔ)言指針

2024-05-15 16:01:04

C++編程開(kāi)發(fā)

2010-02-01 09:18:49

C++函數(shù)指針

2010-01-26 13:42:28

C++指針

2011-04-11 11:09:50

this指針

2009-01-08 09:26:06

C語(yǔ)言指針類型

2010-01-18 15:53:27

C++析構(gòu)函數(shù)

2021-10-27 16:27:20

C++指針操控

2010-01-28 13:57:19

C++指針基礎(chǔ)

2024-07-03 12:04:42

C++this?

2023-11-22 13:22:51

C++函數(shù)

2011-07-15 01:20:58

C指針函數(shù)函數(shù)指針

2024-01-25 11:42:00

C++編程指針常量

2010-02-04 09:33:08

C++指針重載

2011-04-19 09:19:09

C++指針

2011-07-15 01:38:56

C++this指針

2011-04-19 16:38:00

對(duì)象指針指針C++
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)