Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Как ставится звездочка при создании указателя в си? [дубликат]

#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; Теперь обе переменные являются указателями.

Комментариев нет:

Отправить комментарий