2013-09-18 2 views
0

Хорошо, если я объявляю/инициализирую переменную, а затем передаю ее адрес другой функции, это то же самое, что и int* n = &i? Другими словами, является ли акт передачи адреса самой другой функции СОЗДАНИЕ указателя? Я почти хочу сказать себе: «Да, дух, это глупый вопрос», но я просто хочу убедиться, что я правильно понимаю это.Передача адресов переменных в другие функции

foo(int* n) { 
    //do something 
} 


main() { 
    int i = 5; 
    foo(&i); 
} 
+0

Это является абсолютно правильным. – goji

+2

'& i' создает указатель. Из стандарта C++ [expr.unary.op]/3 «Результат унарного оператора' & 'является указателем на его операнд». – dyp

+0

вы правы. – shofee

ответ

0

Да, вы правы в вашем предположении, переменная INT * сам п имеет уникальный адрес, который вы можете получить с & н

+0

Да, определение параметра в определении функции создает переменную, локальную для функции, с которой вы работаете. В этом случае переменная actualy содержит адреса, поэтому может показаться запутанной, но представьте, какая разница, если вы делаете * n = 0 *, которая устанавливает ** вашу переменную в ничто ** против __ * n = 0__, которая устанавливает значение от внешней переменной до нулевого числа. –

Смежные вопросы