指针:C++中指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址,或者指针是编程语言中的一个对象名称,它的值指向堆中的内存地址.
如:int x=10 int *p=&x; 此时定义的指针p的值就是0xbfeb3204,而*p就是该内存地址存的值10;
指针变量:存放地址的变量叫指针变量,与一般的变量不同,一般的变量存的是数据本身,而指针变量存的是数据的地址;
一、值传递:
普通的函数的值传递方式,此处略去……
二、指针传递:
指针变量中存的是变量的地址,函数中的指针传递意味着函数能够通过指针所指向的地址来找到该变量的实际存储地址,进而对该地址的内容进行操作
void swap(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
int main(){
int a=4;
int b=6;
cout<<a<<" "<<b<<endl;
swap(&a,&b);
cout<<a<<" "<<b<<endl;
// 6 4
return 0;
}
三、引用传递
引用传递函数也具有异地操作实参的能力,与指针相比省去了定义指针所开辟的空间,并且在使用时风险比指针更低
int x=10; int &a=x; cout<<&a<<" "<<a<<endl; //0xbfcb0850 10 int *b=&x; cout<<b<<" "<<*b<<endl; //0xbfcb0850 10
void swap(int &a,int &b){ int temp=a; a=b; b=temp; } int main(){ int a=10; int b=20; swap(a,b); cout<<a<<" "<<b<<endl; //20 10 return 0; }