C++語(yǔ)言中的指針是一個(gè)變量,它也稱為定位符或指示符,它是指向一個(gè)值的地址。
指針的優(yōu)點(diǎn)
指針的使用
在C++語(yǔ)言中有許多指針的使用。
動(dòng)態(tài)內(nèi)存分配
在c語(yǔ)言中,可以使用malloc()
和calloc()
函數(shù)動(dòng)態(tài)分配內(nèi)存,其中使用的就是指針。
數(shù)組,函數(shù)和結(jié)構(gòu)體
C語(yǔ)言中的指針被廣泛用于數(shù)組,函數(shù)和結(jié)構(gòu)體中。 它減少了代碼并提高了性能。
符號(hào) | 名稱 | 描述 |
---|---|---|
& |
地址運(yùn)算符 | 獲取變量的地址。 |
* |
間接運(yùn)算符 | 訪問(wèn)地址的值。 |
C++語(yǔ)言中的指針可以使用*
(星號(hào)符號(hào))聲明。
int ? a; //pointer to int
char ? c; //pointer to char
下面來(lái)看看看使用指針打印地址和值的簡(jiǎn)單例子。
#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
在不使用第三個(gè)變量的情況下交換2個(gè)數(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