读书人

引用和地址的有关问题

发布时间: 2012-03-05 11:54:02 作者: rapoo

引用和地址的问题
#include <iostream>


void initialize(char const **ptrPtr)
{
*ptrPtr= "c_style pointer-to-pointer ";

}
void initialize(char const *&refPtr)
{
refPtr= "c++ reference ";
}
int main()
{
char const *ptr;
initialize(&ptr);
std::cout < <ptr < <endl;
initialize(ptr);
std::cout < <ptr < <endl;
}
输出结果是:
c_style pointer-to-pointer
c++ reference
问下
initialize(&ptr);调用时 &ptr中的是取地址还是引用呀?
void initialize(char const *&refPtr)这个char const *&refPtr 里面的&是引用还是取地址呀
c++中还有没有取地址这个说法呀?书看到这又迷惑了
还有为什么initialize(&ptr);调用的是void initialize(char const **ptrPtr)
initialize(ptr);调用的是void initialize(char const *&refPtr



[解决办法]
initialize(&ptr);调用时 &ptr中的是取地址还是引用呀?
取地址

void initialize(char const *&refPtr)表示参数是指针的引用

还有为什么initialize(&ptr);调用的是void initialize(char const **ptrPtr)
initialize(ptr);调用的是void initialize(char const *&refPtr
重载的原因
[解决办法]
看简单的例程
void funcn1(int &ri);
void funcn2(int *pi);
void funcn3(int *&rpi);

int main()
{
int i = 3;
int *pi = &i;
funcn1(i);
funcn2(&i);
funcn3(pi);

return 0;
}
希望说清楚了
[解决办法]
*(*ptrPtr) = *(&ptr);
*(&refPtr) = *(ptr);
了解了不 ?

读书人网 >C++

热点推荐