64,647
社区成员
发帖
与我相关
我的任务
分享
void f(vector<int> &);
vector<int> vec;
vector<int>::iterator it;
it = vec.begin();
f(&(*it));
char c = 'a';
char *ct = &c;
ct的值就是c的地址。若LZ想知道此内存地址上的数据具体是多少,
assert(*ct == 'a');
所以这个*ct就是取那个地址上的数据。
对于指针的指针,一个道理。指针的指针,它还是个指针,同样是个数字,代表一个地址。此地址上的数据是个指针,即代表内存地址的数字。
char **ppct = &ct; //令ppct表示ct的地址
assert(*ppct == ct); //取ppct所表示地址的数据,也就是ct,一个const char * 指针,代表一个地址,此地址的数据为'a'
assert(*(*ppct) == 'a'); //再此取得数据,得到'a'
引用的引用应该没有这种说法,c++11中&&代表右值引用,LZ首先需要知道什么是右值才能明白什么是右值引用,但这不是一句话能说清的。右值大体说来可以认为是临时变量,右值引用应该和你理解的引用的引用不是一个意思。或许LZ所理解的引用的引用其实就是引用
int main()
{
int a = 1;
int &b = a;
int &c = b; //或许这个c就是lz所理解的引用的引用,但实际上没有这种说法,因为c和b没有本质上不同,都是a的引用
b = 2;
std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << c << std::endl;
}
HRESULT CreateInputLayout(
[in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
[in] UINT NumElements,
[in] const void *pShaderBytecodeWithInputSignature,
[in] SIZE_T BytecodeLength,
[out] ID3D11InputLayout **ppInputLayout//指针的指针
);
引用的引用似乎没这个说法吧C++03中似乎不允许&&这样的引用存在吧,
C++11中则代表移动语义