C++指標


C++語言中的指標是一個變數,它也稱為定位符或指示符,它是指向一個值的地址。

指標的優點

  1. 指標減少程式碼並提高效能,它用於檢索字串,樹等,並與陣列,結構和函式一起使用。
  2. 我們可以使用指標從函式返回多個值。
  3. 它能夠存取計算機記憶體中的任何記憶體位置。

指標的使用

在C++語言中有許多指標的使用。

  1. 動態記憶體分配
    在c語言中,可以使用malloc()calloc()函式動態分配記憶體,其中使用的就是指標。

  2. 陣列,函式和結構體
    C語言中的指標被廣泛用於陣列,函式和結構體中。 它減少了程式碼並提高了效能。

指標中使用的符號

符號 名稱 描述
& 地址運算子 獲取變數的地址。
* 間接運算子 存取地址的值。

宣告指標

C++語言中的指標可以使用*(星號符號)宣告。

int ?   a; //pointer to int    
char ?  c; //pointer to char

指標範例

下面來看看看使用指標列印地址和值的簡單例子。

#include <iostream>  
using namespace std;  
int main()  
{  
    int number=30;    
    int ?   p;      
    p=&number;//stores the address of number variable    
    cout<<"Address of number variable is:"<<&number<<endl;    
    cout<<"Address of p variable is:"<<p<<endl;    
    cout<<"Value of p variable is:"<<*p<<endl;    
    return 0;  
}

執行上面程式碼得到如下結果 -

Address of number variable is:0x7ffccc8724c4
Address of p variable is:0x7ffccc8724c4
Value of p variable is:30

在不使用第三個變數的情況下交換2個數位的指標程式範例

#include <iostream>  
using namespace std;  
int main()  
{  
    int a=20,b=10,?p1=&a,?p2=&b;    
    cout<<"Before swap: ?p1="<<?p1<<" ?p2="<<?p2<<endl;    
    ?p1=?p1+?p2;    
    ?p2=?p1-?p2;    
    ?p1=?p1-?p2;    
    cout<<"After swap: ?p1="<<?p1<<" ?p2="<<?p2<<endl;    
    return 0;  
}

執行上面程式碼得到如下結果 -

Address of number variable is:0x7ffccc8724c4
Address of p variable is:0x7ffccc8724c4
Value of p variable is:30