请教这个&和*是什么
请问这个&和*是什么
void FCExport FmsCreateAuthAdaptor3 ( IFmsAuthServerContext2 * pAuthServerCtx,
IFmsAuthAdaptor *& pAuthAdaptor,
U32 & iVersion
)
这个参数旁边的*和&是什么意思啊,我是初学者
------解决方案--------------------
*是指针,&是引用
------解决方案--------------------
------解决方案--------------------
IFmsAuthServerContext2 * pAuthServerCtx,
IFmsAuthAdaptor *& pAuthAdaptor,
U32 & iVersion
这里的第一第二个*都是指传进来的参数是指针型变量,
&表面实参是引用参数,代表传进来的参数是实参本身,如果不见&,传进来的只是实参的一个拷贝
比如如果参数是U32 iVersion
调用时,加入定义了int b=5;
void fun(int a)
a++;
}
执行完fun(b)此函数b并没有变化,原因在于此时只是将b的值5传给了fun中的临时变量a,相当于a=5,a的生存期仅在fun函数内。但是如果你定义为&a的话,此时调用fun(b);
b的值就会变为6,因为此时传进来的就是b本身,也就是说此时的a跟b是完全一样的,是b的另一个称呼。
------解决方案--------------------
指针的引用~
void FCExport FmsCreateAuthAdaptor3 ( IFmsAuthServerContext2 * pAuthServerCtx,
IFmsAuthAdaptor *& pAuthAdaptor,
U32 & iVersion
)
这个参数旁边的*和&是什么意思啊,我是初学者
------解决方案--------------------
*是指针,&是引用
------解决方案--------------------
------解决方案--------------------
IFmsAuthServerContext2 * pAuthServerCtx,
IFmsAuthAdaptor *& pAuthAdaptor,
U32 & iVersion
这里的第一第二个*都是指传进来的参数是指针型变量,
&表面实参是引用参数,代表传进来的参数是实参本身,如果不见&,传进来的只是实参的一个拷贝
比如如果参数是U32 iVersion
调用时,加入定义了int b=5;
void fun(int a)
a++;
}
执行完fun(b)此函数b并没有变化,原因在于此时只是将b的值5传给了fun中的临时变量a,相当于a=5,a的生存期仅在fun函数内。但是如果你定义为&a的话,此时调用fun(b);
b的值就会变为6,因为此时传进来的就是b本身,也就是说此时的a跟b是完全一样的,是b的另一个称呼。
------解决方案--------------------
指针的引用~