Я не уверен, что это правильный вопрос программирования, но это то, что меня всегда беспокоило, и мне интересно, не единственный ли я.
Когда я изучал С++, я понял концепцию ссылок, но указатели меня смутили. Почему ты спрашиваешь? Из-за того, как вы объявляете указатель.
Рассмотрим следующее:
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
, но когда сначала изучил С++, я связал символ *
с разыменованием, поэтому я решил разыменовать int
необходимый для передачи. Я попытался бы передать *y
в foo
, который, очевидно, не работает.
Не было бы проще иметь отдельный оператор для объявления указателя? (или для разыменования). Например:
void test([email protected] x)
{
}