понимаю, что это не имеет значения, просто интересно узнать, как принято:
int *n_ptr = NULL;
int* n_ptr = NULL;
Для меня второй вариант кажется более интуитивным: местоположение звездочки рядом с типом как бы намекает, что это указатель. Хотя я часто встречаю и первый
Тоже всегда было интересно как правильней 😆
Ну собственно звёздочки ставятся там же, где и другие модификаторы, будь то квадратные или круглые скобки
Т.е. рядом с идентификатором
Рядом с типом, короче?
Нет, рядом с идентификатором переменной
Стикер
Да
int* a, b; Какого типа будет перенная a и какого b?
А у них ещё могут быть разные типы? оба int*, не?
Можешь проверить.
А можно как-то узнать тип объекта по переменной?
Можно макрос на совместимость типов написать. Ну либо по ошибке компиля смотреть
Мне плакать захотелось. Пожалуй, пока рановато для такого...
В книге ANSI C первый вариант
Что значит то же? У тебя какая-то другая?))
А в каком месте это ANSI?
Подкину тебе классики)
Дык это не стандарт как бы, он не может быть ANSI, расшифровку то знаешь?)
Лол, ну ты прикололся, конечно
Я не знаю про язык Си ничего, кроме первых 104 страниц этой книги, начал учить 4 дня назад
Страница 6, можешь почитать
Так и какой вывод из этого можно сделать?
Что это по факту 2 разных документа (книги/материала)
Именно, что ANSI C это стандарт, а K&R со второго издания это учебное пособие, ссылающееся на стандарт.
Это называется "докопаться"
Это называется неверно указал источник
я ярый сторонник второго варианта. Для меня это гораздо логичнее - факт указателя является частью типа, а тип отделяют от идентификатора пробелом - вот и выходит, что звёздочку лучше к типу присобачивать. Некоторые умудряются её с обоих сторон пробелом отделить, но это выглядит странно. Как минимум, у меня возбуждаются нейроны в голове, первым делом орущие об умножении)
Согласен, мне тоже кажется, что лучше так делать и что указатель это тип. Странно, что язык создали именно таким
Обсуждают сегодня