Заблокирован

Как грамотней писать объявление указателя?

24.09.2014, 13:11. Показов 6992. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ну собственно сабж.
C++
1
int* a;
или
C++
1
int *a;
Куда Фен Шуй рекомендует звёздочку ставить ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2014, 13:11
Ответы с готовыми решениями:

Как грамотней писать код?
Добрый день. 1. Как правильней перебирать контейнер (карта, хеш, список...) - обычным for(int = 0;...) или с использованием итераторов? ...

Как обратиться к полям структуры через указатель и объявление указателя на структуру
Как обратиться к полям структуры через указатель и объявление указателя на структуру? #include "stdAfx.h" #include...

Компилятор не принимает объявление указателя на функцию
Портирую библиотеку коннектора на си для tarantool. Код целиком тут. Туллчейн - cygwin - cmake - clion. При сборке возникает две...

55
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
24.09.2014, 20:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от castaway Посмотреть сообщение
Mr.X, я думаю это не от языка зависит, а от человека.
Традиции оформления кода в этих языках очень разные.
Си - это полуассемблер, и сишники стремятся приблизить по виду свой код к ассемблерному.
Язык С++ гораздо более сложный, и тут писать код с помощью буковок, чертиков и крестиков просто не получится, поэтому он по стилю ближе к естественному языку.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.09.2014, 21:08
Цитата Сообщение от Mr.X Посмотреть сообщение
Язык С++ гораздо более сложный, и тут писать код с помощью буковок, чертиков и крестиков просто не получится, поэтому он по стилю ближе к естественному языку.
Кто писал чертики и крестики - тот и будет продолжать их писать. Это точно не от языка зависит.
Просто язык С более древний, а раньше даже кол-во символов под переменную было ограничено. Но никто не мешал писать в комментариях подробные соответствия сокращениям.

Добавлено через 26 секунд
Кстати, регулярки ввели именно в плюсах
0
Заблокирован
24.09.2014, 21:16  [ТС]
Цитата Сообщение от Kastaneda Посмотреть сообщение
typedef int* int_ptr;
Всё, для себя я решил. Буду писать int* a; т.к. это действительно корректно и по фен шую. Собственно я всегда так и оформлял, просто увидел, что QtCreator делает Int *a, вот и подумал, может его фен шуй и делал, эээ нее - оказывается не он
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.09.2014, 21:24
Цитата Сообщение от Kastaneda Посмотреть сообщение
C++
1
typedef int* int_ptr;
Хватит терпеть этот анахронизм.
C++
1
using int_ptr = int*;
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
24.09.2014, 21:24
Как грамотней писать объявление указателя?
Мне кажется, это как раз одна из таких мелочей, на которых не
стоит вообще заострять внимание. Никакой смысловой нагрузки
наличие или отсутствие пробела рядом со звездочкой не несет.
Лишь бы было согласованно хотя бы с тем, что написано рядом, и
понятно тому, кто читает код. Большего этот вопрос не стоит.

Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
просто увидел, что QtCreator делает Int *a, вот и подумал, может его фен шуй и делал, эээ нее - оказывается не он
Э-э, сколько еще разочарований ждет !..
Вокруг такая куча библиотек, и в каждой свои стилевые отличия -
где отступы по-разному расставляются, где CamelCase, а где
подчеркивание, где между скобочками дополнительные пробелы
есть, а где нет, и так далее. Копировать или подстраиваться
под это каждый раз бессмысленно.
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
24.09.2014, 21:27
Цитата Сообщение от MrGluck Посмотреть сообщение
Кто писал чертики и крестики - тот и будет продолжать их писать.
Ну, раньше программисты даже гордились, что их программы никому не понятны. Согласно современным воззрениям, программа тем ценнее, чем она понятнее. Сишники более привержены древним традициям.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
24.09.2014, 21:49
Цитата Сообщение от Mr.X Посмотреть сообщение
никто из них имя переменной не засоряет никакими звездочками, а Майерс посередине ставит. Или вы сишников имели в виду?
Я мог бы подобрать ссылки и может так и сделаю. Нет, сишников не имел ввиду. Писать звёздочку посредине наверное тоже хорошо. Так же хорошо как и в любом другом способе. Тогда типом данных будет, скажем, int, звёздочка или амперсанд будут типомразновидностью переменной... Почему нет.
Дело и в том, что ссылка на указатель это мелочь в сравнении с объявлением указателя на функцию, которая возвращает массивы указателей на функции возвращающие.... Когда появляются скобки, они прижимают звёздочку к имени. К колбу или... Ну в общем в имени она. Имя бессловесно как корова. Со звёздочкой. Помните:
Что в вымени, тебе моём?
Кош-мар.
Получается, что продуктивность отделения звёздочки от выимени не всегда есть.j
То есть, - зажмуриться, написать в typedef'е и забыть. Пусть компилятор мучается при подстановках. Ему не привыкать.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
24.09.2014, 22:27
Цитата Сообщение от Убежденный Посмотреть сообщение
Мне кажется, это как раз одна из таких мелочей, на которых не
стоит вообще заострять внимание.
Ну да. Тем более, что такие неудобно обозначенные сишные типы, как указатель, массив и символьная строка, по какому-то странному совпадению оказались неудобны и в использовании, и заменены в С++ более удобными.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2014, 02:09
А почему мой пост удалили без сообщения? Я так предлагал (чтобы никому обидно не было):
C++
1
int * a;
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
25.09.2014, 06:10
Цитата Сообщение от alsav22 Посмотреть сообщение
А почему мой пост удалили без сообщения? Я так предлагал (чтобы никому обидно не было):
C++
1
int * a;
Ну, мы с Майерсом уже давно так пишем, так что первородства вам тут не отспорить.
А если серьезно, то, если писать параметры функции в столбик, как специалисты советуют, то оно само так получается
C++
1
2
3
4
5
6
int     func
            (
                std::string     const   &   s,
                int                     &   a,
                int                     *   b
            );
ибо по-другому будет просто нечитаемо.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2014, 06:25
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, мы с Майерсом уже давно так пишем
Насчёт Майерса серьёзно?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
25.09.2014, 06:41
Цитата Сообщение от alsav22 Посмотреть сообщение
Насчёт Майерса серьёзно?
Да, но перехвалил я его, так как он непоследователен, у него через раз. Иногда к имени прижимает.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2014, 06:46
Цитата Сообщение от Mr.X Посмотреть сообщение
у него через раз. Иногда к имени прижимает.
Он все три варианта использует. Когда посередине, то без пробелов. В крайнем случае, там, где я видел. Может в других местах и с пробелами есть. Из этого можно сделать вывод, что Майерс считает этот вопрос второстепенным.
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,283
25.09.2014, 08:23
Что-то никто не высказался по существу.
Как Вам такой нюанс?:
C++
1
int* a,b;
А посему я предпочитаю
C++
1
int  *a,*b;
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
25.09.2014, 08:25
Цитата Сообщение от zss Посмотреть сообщение
Что-то никто не высказался по существу.
Да ладно, надо же пообсуждать куда звездочку прижимать)
Цитата Сообщение от zss Посмотреть сообщение
Как Вам такой нюанс?
Было уже во втором посте.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.09.2014, 08:42
Цитата Сообщение от zss Посмотреть сообщение
Что-то никто не высказался по существу.
Как Вам такой нюанс?
Внимательнее надо быть (1, 2, 3).

Добавлено через 15 минут
А вообще, тема, конечно, нажористая. В стиле Николая Васильевича, прям:
Цитата Сообщение от Н.В. Гоголь
"Вишь ты, - сказал один другому, - вон какое колесо! что ты думаешь, доедет то колесо, если б случилось, в Москву или не доедет?" - "Доедет", - отвечал другой. "А в Казань-то, я думаю, не доедет?" - "В Казань не доедет", - отвечал другой.
2
Заблокирован
25.09.2014, 09:01  [ТС]
Цитата Сообщение от Mr.X Посмотреть сообщение
А если серьезно, то, если писать параметры функции в столбик, как специалисты советуют, то оно само так получается
int * * func
* * * * * * (
* * * * * * * * std::string * * const * & * s,
* * * * * * * * int * * * * * * * * * * & * a,
* * * * * * * * int * * * * * * * * * * * * b
* * * * * * );
А это по - моему полные щи Такое прокатывает на мониторах с хорошей диагональю, причём с приоритетом высоты. Нет, ну на самом деле, сжирают драгоценное место по высоте. Хотя конечно можно использовать сворачиваемые плюшки IDE, ну тип свернул, если хочешь развернуть - нажал на плюсик слева.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.09.2014, 09:12
Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
это по - моему полные щи
Это пока у тебя учебные записульки в пределах 100-200 строк. А вот когда (если) программирование на C++ станет работой и будут проекты на тысячи или даже десятки тысяч строк, с командой программистов в несколько десятков человек, тогда, вполне возможно, сам начнёшь как Mr.X писать.
0
25.09.2014, 09:26

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
А вот когда (если) программирование на C++ станет работой и будут проекты на тысячи или даже десятки тысяч строк, с командой программистов в несколько десятков человек, тогда, вполне возможно, сам начнёшь как Mr.X писать.
Нет, потому что код в таком стиле сложно набирать и сложно поддерживать по очевидным причинам.

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.09.2014, 09:30
Цитата Сообщение от gru74ik Посмотреть сообщение
А вот когда (если) программирование на C++ станет работой и будут проекты на тысячи или даже десятки тысяч строк, с командой программистов в несколько десятков человек, тогда, вполне возможно, сам начнёшь как Mr.X писать.
Цитата Сообщение от 0x10 Посмотреть сообщение
Нет, потому что код в таком стиле сложно набирать и сложно поддерживать по очевидным причинам.
Не буду спорить, потому что сам ещё только учусь. Проще спросить автора кода - использует ли он такой стиль форматирования в реальных больших проектах на работе, или это просто личные предпочтения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2014, 09:30

Объявление указателя на структуру в объявлении структуры
struct node { int data; struct node * next; }; Зачем может понадобится такое объявление?

Объясните объявление указателя на объект класса
Доброго времени суток! Подскажите, пожалуйста, что означает данная строчка? B *b; B - это класс. *b - указатель....

Рекурсивный include, как грамотней сделать?
Привет! Что - то я совсем онубел :D Есть два класса, вот их хэдэры: //Base.h #pragma once #include "Child.h" class...

Как наиболее красиво писать объявление функций?
Допустим, функция возвращает 3 аргумента. def make_smth(): return a, b, c А другая функция принимает эти 3 аргумента: def...

Объявление глобального указателя всего проекта
Здравствуйте! Программа состоит из нескольких модулей. В одном из модулей написан класс, объект которого используется в других модулях. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru