我不确定这是否是一个合适的编程问题,但这一直困扰着我,我想知道我是否是唯一一个有这种疑惑的人。
在最初学习C++时,我理解了引用的概念,但指针一直让我感到困惑。你问为什么?因为指针的声明方式。
考虑以下代码:
void foo(int* bar)
{
}
int main()
{
int x = 5;
int* y = NULL;
y = &x;
*y = 15;
foo(y);
}
函数foo(int*)
接受一个int
指针作为参数。由于我已经将y
声明为int
指针,因此我可以将y
传递给foo
函数,但当我初学C++时,我将*
符号与解引用联系起来,因此我认为需要传递一个解引用的int
。我会尝试将*y
传递给foo
,但显然这是行不通的。难道为声明指针(或解引用)不能有一个单独的运算符吗?例如:
void test(int@ x)
{
}
phooehy
案例删除并简化代码到一个简化的main
函数可能是有意义的。我从标签中删除了reference
,因为这个问题似乎根本不涉及引用。虽然相关问题可能是:“为什么取地址运算符(&)也用于声明引用?”它也以类似的方式进行了重载。 - user166390