#c #указатели
This question already has answers here: Обозначение указателей в C++ (7 ответов) Закрыт 2 года назад. Как ставится звездочка * при создании указателя? Точнее в чем разница между: char* str; char * str; char *str; На что влияет место в котором находится *?
Ответы
Ответ 1
Пробельные символы допустимо ставить в любом месте, где он не разрывает ключевое слово, идентификатор или константу. Все варианты ниже полностью эквивалентны: char*str; char*str ; char* str; char *str; char* str ; char *str ; char * str; char * str ; Но есть некоторая тонкость. Если посмотреть на синтаксис объявления нескольких переменных: char * str1, * str2, c3, * p4, c5; // str1, str2 и p4 - указатели, c3 и c5 - символы то будет видно, что "звездочка" является скорее модификатором переменной, чем модификатором типа. Чтобы подчеркнуть этот факт, рекомендуется всегда писать "звездочку" около переменной. Такая привычка позволяет избежать глупых ошибок: char *str1, *str2; // нормально char* str1, str2; // Ошибка: str2 кажется строкой, но на самом деле - символ.Ответ 2
Ни на что не влияет. Но есть подводный камень: char* str1, str2; В этом примере только str1 является указателем. str2 - просто char. Поэтому я обычно делаю так: char *str1, *str2; Теперь обе переменные являются указателями.
Комментариев нет:
Отправить комментарий