В порядке ваших ссылок:
-
->
имеет более высокий приоритет, чем &
. Вы получите адрес rho->structure0
. Вернее, вы бы указали rho
. Поскольку это не так, вы получите ошибку компиляции.
- Это не сработает - вы приводите структуру к типу указателя - вы должны получить ошибку компилятора при этом.
- Вы тоже не можете этого сделать. Типовое преобразование к нескалярному типу также является ошибкой.
Ваши примеры № 2 и № 3 описаны в стандартном разделе 6.5.4:
Если имя типа не указывает тип void, имя типа должно указывать квалифицированное или
неквалифицированный скалярный тип и операнд должны иметь скалярный тип.
Если вы поместите любой из этого кода в компилятор, вы увидите те же результаты; код, который вы показываете, не тот, о котором вы хотели спросить?