首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

指针部类的引用,一般用在什么地方

2012-09-13 
指针类型的引用,一般用在什么地方?C/C++ codeint find(string index, T* & var)像这种 函数参数设置 为什

指针类型的引用,一般用在什么地方?

C/C++ code
int find(string index, T* & var);


像这种 函数参数设置 为什么要用 * & 指针引用呢

通常 用* 或者 &也能够完成对外部 变量的操作和改变。

求问这种 指针类型的引用,适合在什么场合下使用?有什么用处

[解决办法]
相当于二级指针,把存储地址的那个变量地址给传过去,直接修改。
[解决办法]
用在要修改指针本身的情况

可以用
int find(string index, T** var)
替代

T* a;
*var = a;

若是T*& var
T* a;
var = a;

等效
[解决办法]
参考:
C/C++ code
#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看成是变量,需要地址传递,所以用引用,不用引用时该函数在被其他函数调用时会出错,因为不用引用时是给临时变量申请内存空间,函数结束时候临时变量生存期结束。
[解决办法]
相当于修改指针的地址,二级指针!
[解决办法]
C/C++ code
void fun(int* pi) {    pi = new int(0); }int main(){    int i = -1;    cout<<i<<endl;     fun(&i);    cout<<i<<endl;      return 0;}
[解决办法]
探讨
C/C++ code

int find(string index, T* &amp; var);




像这种 函数参数设置 为什么要用 * &amp; 指针引用呢

通常 用* 或者 &amp;也能够完成对外部 变量的操作和改变。

求问这种 指针类型的引用,适合在什么场合下使用?有什么用处

热点排行
Bad Request.