C/C++

Почему никто не знает, что такое &?

Записываю в бинарный файл.

int x;
write((char*)&x, sizeof(x));

Преподаватель говорит, что амперсанд - это не оператор
взятия адреса.

А что тогда?
Интерпретация x как указателя?
Sherzod Egamkulov
Sherzod Egamkulov
36 397
Преподаватели иногда ошибаются, особенно если их вынуждают читать не свой предмет. А иногда "ошибаются" нарочно, чтобы запутать студента.
В Си одиночная & перед переменной это взятие ее адреса, между двумя переменными - побитовое умножение. В Си++ добавилось еще обозначение что переменная имеет тип - ссылка. В таком случае амперсанд ставится при обьявлении переменной после ее типа.
Бекзод Каримов
Бекзод Каримов
51 416
Лучший ответ
Преподаватель — один человек, который отрицает вашу формулировку.
Вот у него и стоит спросить, какой формулировкой руководствуется он.
Вполне может быть, что он не видит вашего кода и воображает условный оператор, в котором два числа или логических выражения соединены бинарным оператором конъюнкции &.
> Преподаватель говорит, что амперсанд - это не оператор взятия адреса.
В данном коде - это оператор взятия адреса.
амперсанд слова соединяет в-)
Николай П
Николай П
20 854
Sherzod Egamkulov Соединяет символьный указатель с целочисленной переменной?
& - это символ.
Символы используются в лексике и синтаксисе для составления слов(лексем) в языке.
С помощью слов и грамматик можно составлять выражения это по сути и является языком.
т.е. & может одновременно являться и отдельным символом и отдельным словом и одно другому не мешает.
При использовании "&"лексемы в выражении она начинает выполнять свою роль которую определяют грамматики языка.
В зависимости от выражения (применяемой грамматики) она может быть как "оператор
взятия адреса" так и "бинарным оператором конъюнкции" как и какой еще какой нибудь другой определенной ролью в грамматике xD.
Дмитрий Егоров
Дмитрий Егоров
12 593
Его мало кто использует
Андрей Кипин
Андрей Кипин
2 223
Почему????