指针类型的引用,一般用在什么地方?
int find(string index, T* & var);
#include <iostream>using namespace std;// 将小写字符串,转换成大写字符串void fun(char*& str){ for(int i = 0; i < 43; ++i) { if(str[i] != 32) str[i] -= 32; }}int main(int argc, char** argv){ char str[] = "there is a kind of hush all over the world"; char* str1 = str; fun(str1); cout << str1 << endl; return 0;}
[解决办法]
改变指针的指向
[解决办法]
用处很多,比如给某个指针申请空间
void new(int *&p)
{
p=(int *)malloc(5*sizeof(int))
}
因为是改变传过去的指针属性,而不是所以指针变量*p看成是变量,需要地址传递,所以用引用,不用引用时该函数在被其他函数调用时会出错,因为不用引用时是给临时变量申请内存空间,函数结束时候临时变量生存期结束。
[解决办法]
相当于修改指针的地址,二级指针!
[解决办法]
void fun(int* pi) { pi = new int(0); }int main(){ int i = -1; cout<<i<<endl; fun(&i); cout<<i<<endl; return 0;}
[解决办法]