C++引用与指针关系 对不起,对于NOOB问题,我只是对C++中指针和引用的关系有点困惑。 < C++中的下列行为中哪一个是合法的?< /P> 指针对指针; 指向引用的指针; 对指针的引用; 引用对引用的引用;
我知道指针指向指针是完全合法的,即:C++引用与指针关系 对不起,对于NOOB问题,我只是对C++中指针和引用的关系有点困惑。 < C++中的下列行为中哪一个是合法的?< /P> 指针对指针; 指向引用的指针; 对指针的引用; 引用对引用的引用;,c++,pointers,reference,relationship,C++,Pointers,Reference,Relationship,我知道指针指向指针是完全合法的,即: int* p; *p = 5; int ** pp; *pp = p; 我不知道我做的是否正确 有人能用一些非琐碎的例子为我澄清一下吗? 多谢各位 C语言中指针与引用的关系++ 没有。没有关系。他们完全不同 < C++中的下列行为中哪一个是合法的?< /P> 指向指针的指针和指向指针的引用。指向引用的指针和指向引用的引用不存在 我不知道我做的是否正确 您没有:您发布的代码段调用未定义的行为,因为您正在取消对未初始化指针的引用 C语言中指针与引用的关系++
int* p;
*p = 5;
int ** pp;
*pp = p;
我不知道我做的是否正确
有人能用一些非琐碎的例子为我澄清一下吗?
多谢各位
C语言中指针与引用的关系++
没有。没有关系。他们完全不同
< C++中的下列行为中哪一个是合法的?< /P>
指向指针的指针和指向指针的引用。指向引用的指针和指向引用的引用不存在
我不知道我做的是否正确
您没有:您发布的代码段调用未定义的行为,因为您正在取消对未初始化指针的引用
C语言中指针与引用的关系++
没有。没有关系。他们完全不同
< C++中的下列行为中哪一个是合法的?< /P>
指向指针的指针和指向指针的引用。指向引用的指针和指向引用的引用不存在
我不知道我做的是否正确
您没有:您发布的代码段调用未定义的行为,因为您正在取消对未初始化指针的引用。您可以:
指向指针的指针:int**i
指针的引用:int*&i
你不能有:
指向引用的指针
参考文献
你可以有:
指向指针的指针:int**i
指针的引用:int*&i
你不能有:
指向引用的指针
参考文献
指向指针的指针:
您的示例显示了指向指针的指针在语义上是正确的,只是您没有为p分配内存
指向引用的指针:
没有这样的事
对指针的引用:
对指针的引用与对非指针的引用的行为方式相同。它们允许通过另一个对象对对象进行别名。例如:
int *p = new int;
int *& ref = p;
ref = new int(5);
std::cout << *p; // 5
在C++中,我们可以简单地使用指针来引用,所以这不是明确需要的:
void f(int *&ptr)
{
ptr = new int(10);
}
int *p;
f(p);
参考文献:
没有这样的事。你在考虑T&&吗?这是一个右值引用,是指针指向指针的一个重要方面:
您的示例显示了指向指针的指针在语义上是正确的,只是您没有为p分配内存
指向引用的指针:
没有这样的事
对指针的引用:
对指针的引用与对非指针的引用的行为方式相同。它们允许通过另一个对象对对象进行别名。例如:
int *p = new int;
int *& ref = p;
ref = new int(5);
std::cout << *p; // 5
在C++中,我们可以简单地使用指针来引用,所以这不是明确需要的:
void f(int *&ptr)
{
ptr = new int(10);
}
int *p;
f(p);
参考文献:
没有这样的事。你在考虑T&&吗?这是一个有价值的参考资料,是的一个重要方面。第一件事是试图理解基本概念是什么。指针是保存另一个对象地址的变量。引用是另一个对象的别名,即为现有对象创建新名称 这里最重要的是,在初始化引用之后,名称指的是真实对象,而不是引用 有鉴于此 你能有一个指向指针的指针吗 是的,指针是一个保存地址的变量。另一个指针可能包含第一个指针的地址 你能给我一封推荐信吗?i、 你能给我一个别名吗 化名 不,别名表示以其他名称居住在其他地方的真实对象。可以创建引用同一对象的新别名,但不能为别名创建别名 你能引用一个指针吗?i、 你能给指针加别名吗 是的,您可以引用指针类型的变量。变量保存pointer类型或int类型的对象这一事实无关紧要,它是一个变量,您可以创建一个别名 你能创建一个指向引用的指针吗?i、 e.能否创建指向别名的指针
不,别名只是一个变量的另一个名称,您可以有一个指向原始变量的指针,要获得它,您可以使用原始名称或别名,但不能有指向别名的指针。首先要了解基本概念是什么。指针是保存另一个对象地址的变量。引用是另一个对象的别名,即为现有对象创建新名称 这里最重要的是,在初始化引用之后,名称指的是真实对象,而不是引用 有鉴于此 你能有一个指向指针的指针吗 是的,指针是一个h 我有一个地址。另一个指针可能包含第一个指针的地址 你能给我一封推荐信吗?i、 你能给我一个别名吗 化名 不,别名表示以其他名称居住在其他地方的真实对象。可以创建引用同一对象的新别名,但不能为别名创建别名 你能引用一个指针吗?i、 你能给指针加别名吗 是的,您可以引用指针类型的变量。变量保存pointer类型或int类型的对象这一事实无关紧要,它是一个变量,您可以创建一个别名 你能创建一个指向引用的指针吗?i、 e.能否创建指向别名的指针
不,别名只是一个变量的另一个名称,您可以使用指向原始变量的指针,要获得它,您可以使用原始名称或别名,但不能使用指向别名的指针。谢谢您的回答!对不起,我不知道用什么词来形容我的问题。我正试图得到一些我在问题中所说的不平凡的例子。这就是为什么我没有选择你的答案,但这显然是对其他人有用的答案。谢谢你的回答!对不起,我不知道用什么词来形容我的问题。我正试图得到一些我在问题中所说的不平凡的例子。这就是为什么我没有选择你的答案,但它显然对其他人来说是有用的答案。你能转发链接吗?404.. :您的无引用指针示例第二个示例有缺陷,它既不是C,也没有修改函数参数。@EmmaWang我已将链接更改为,您可以重新发布链接吗?404.. :您的无引用指针示例第二个示例有缺陷,它既不是C,也没有修改函数参数。@EmmaWang我已将链接更改为