Что значит запись (byte*)

А если еще одна звездочка, то значит мы в космосе :smiley: :joy:

1 лайк

Или это указатель на указатель…

А это и есть космос.

Кстати, кусок реальной программы (нормально работающей):

Serial.println(pp****p****p****p****p);
1 лайк

Это
Serial.println(pp*(***p)*(***p)*(***p)*(***p));
? :slight_smile:
Вот за что люблю расстановку пробелов вокруг бинарных операторов - что код выглядел бы вменяемее.

Еще одна забавная особенность Си - наличие двух операторов доступа к полям структур - operator. и operator-> - тоже тесно связана с указателями и скорее всего выросла тоже из того, что в языке Би не было способа отличить указатель от слова никак кроме как применением нужного по смыслу оператора. В типизированном Си можно было бы из типа вывести что . обращается к полю структуры по указателю и сделать синтаксис доступа однообразным. Но скорее всего → это торчащие уши Би.

это не неудобно :grinning:

Это да …

Serial.println(n --> 0);

Зато красиво!)

а неученых тьма"

С точки зрения синтаксиса нет разницы, писать звездочки справа, слева или посередине. Но с точки зрения смысла - разница есть.
Правильнее писать звездочки справа, и это очень просто понять на примере.

Если вы пишете звездочку слева, можно подумать, что она часть обозначения типа
int* a;
а это неверно.

Если бы звездочка относилась бы к int, то запись ниже обьявляла бы два указателя:

int* a, b;

на самом же деле звездочка тут относится к только переменной а.

И чтобы это было понятнее, лучше писать так:

int *a, b;

или даже так, чтобы никаких сомнений не было:

int b, *a;

1 лайк

товарищ @aa_dav напоминает мне перелогинившегося Архата… Помнится, настоящий Архат ненавидел ООП в микроконтроллерах, но разница только в этом…
Страсть к педагогике та же :slight_smile:

1 лайк

Мож, просто переобулся человек?

не понял, какие сомнения в первом случае и почему они исчезают во втором?