鍍金池/ 教程/ C++/ C++指針
C++用戶定義異常
C++ this指針
C++存儲類
C++函數(shù)
C++交換變量值
C++ continue語句
C++注釋
C++函數(shù)遞歸
C++ goto語句
C++函數(shù)-通過值調(diào)用和引用調(diào)用
C++重載
C++語言歷史
C++反轉(zhuǎn)數(shù)字
C++ try/catch語句
C++是什么?
C++變量
C++ break語句
C++運算符
C++第一個程序
C++繼承
C++虛函數(shù)
C++將十進(jìn)制轉(zhuǎn)換為二進(jìn)制
C++矩陣乘法
C++對象和類
C++基礎(chǔ)輸入輸出(cin,cout,endl)
C++文件和流
C++求素數(shù)
C++ if/else語句
C++友元函數(shù)
C++命名空間
C++面向?qū)ο蟾拍?/span>
C++階乘
C++關(guān)鍵字
C++重載
C++聚合
C++結(jié)構(gòu)體
C++的特點(特性)
C++打印字母表三角
C++ switch語句
C++多態(tài)
C++ do-while循環(huán)
C++字符串
C++ static關(guān)鍵字
C++錯誤處理
C++ for循環(huán)
C語言與C++的區(qū)別
C++ while循環(huán)
C++開發(fā)環(huán)境的安裝
linux環(huán)境下編譯C++ 程序
C++枚舉
C++指針
C++斐波納契數(shù)列
C++阿姆斯壯數(shù)字
C++接口
C++教程
C++數(shù)組
C++數(shù)據(jù)抽象
C++回文程序?qū)嵗?/span>
C++打印數(shù)字三角
C++將數(shù)組傳遞到函數(shù)
C++多維數(shù)組
C++將數(shù)字轉(zhuǎn)換字符

C++指針

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

指針的優(yōu)點

  1. 指針減少代碼并提高性能,它用于檢索字符串,樹等,并與數(shù)組,結(jié)構(gòu)和函數(shù)一起使用。
  2. 我們可以使用指針從函數(shù)返回多個值。
  3. 它能夠訪問計算機(jī)內(nèi)存中的任何內(nèi)存位置。

指針的使用

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

  1. 動態(tài)內(nèi)存分配
    在c語言中,可以使用malloc()calloc()函數(shù)動態(tài)分配內(nèi)存,其中使用的就是指針。

  2. 數(shù)組,函數(shù)和結(jié)構(gòu)體
    C語言中的指針被廣泛用于數(shù)組,函數(shù)和結(jié)構(gòu)體中。 它減少了代碼并提高了性能。

指針中使用的符號

符號 名稱 描述
& 地址運算符 獲取變量的地址。
* 間接運算符 訪問地址的值。

聲明指針

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;  
}

執(zhí)行上面代碼得到如下結(jié)果 -

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

在不使用第三個變量的情況下交換2個數(shù)字的指針程序示例

#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;  
}

執(zhí)行上面代碼得到如下結(jié)果 -

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