Я прихожу из C#, и я изучаю C++ (с this tutorial), поэтому у меня есть относительно незначительное количество знаний в памяти, но единственное, что я вижу в указателях, это «экономия пространства» и повторение через массивы. Итак, почему функции, такие как функция scanf
, принимают указатели в качестве параметров? Например:Почему некоторые функции C/C++ используют указатели в качестве параметров?
printf("What's your name?: ");
и затем: scanf("%s",&userName)
. Разве не имеет смысла просто передавать эту переменную как аргумент? Книга C, на которую я смотрел, сказала, что использование самой переменной приведет к неожиданным результатам, но я не понимаю, почему. Может кто-нибудь, пожалуйста, просветит меня в моде C++? Я переключился с изучения C, потому что понял, как сильно люблю ООП.
Возможный дубликат [Зачем использовать указатели?] (Http://stackoverflow.com/questions/162941/why-use-pointers) –
scanf не C++. Если вы будете ткнуть вокруг 'iostream', который является C++, не будет указателей, а только ссылок. Попробуйте 'cin >> userName;' – Dani
'scanf' - это C++. Большая часть стандартной библиотеки C включена в C++ по ссылке. –