Программирование на C и C++

Онлайн справочник программиста на C и C++

В scanf() следует передавать адреса

Все переменные, используемые для получения значений из scanf(), должны передаваться в виде адресов. Это означает, что все аргументы должны быть указателями на переменные, используемые как аргументы. Вспомним, что в С это стандартный способ создания передачи по ссылке и он позволяет функции изменять содержимое аргумента. Например, для чтения целого в переменную count надо использовать следующий вызов scanf():

scanf ("%d", & сount);

Строки будут читаться в массивы символов, причем имя массива (без индексов) является адресом первого элемента массива. Таким образом, для чтения строки в символьный массив str следует использовать:

scanf ("%s", str);

В данном случае str является указателем и нет необходимости ставить перед ним оператор &.