Я не уверен, что это правильный вопрос программирования, но это то, что меня всегда беспокоило, и мне интересно, единственный ли я такой.
Изучая 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)
{
}