Вы не можете получить доступ к первому элементу структуры, как если бы вы обращались к первому элементу массива (с [0]
).Элементы структуры доступны только по имени.
Если вы хотите получить адрес структуры, вы можете сделать это следующим образом.
typedef struct example
{
int a;
} Example_Struct;
Доступ к элементам.
Example_Struct exampleStruct;
exampleStruct.a = 5; // accessing the first element
Example_Struct* structPtr = &exampleStruct; // pointer to the structure
structPtr->a = 10; // accessing the first element
int* intPtr = &(exampleStruct.a); // pointer to the first element of the struct
int* intPtr2 = &(structPtr->a) // also pointer to the first element
Существует способ получить доступ к первому элементу без использования его имени, но это не очень хорошая практика.
Структура - это только место в памяти, где вы храните свои данные.Таким образом, приведение указателя на структуру к другому типу даст вам память, представленную как этот тип.
Example_Struct exampleStruct;
int* firstElPtr = (int*)&exampleStruct; //representing the memmory as an int
int firstEl = *((int*)&exampleStruct); //representing and dereferencing the memmory as an int
Обратите внимание, что смысл создания структуры заключается в том, что элементы могут быть доступны по их именам, и этобезопасный и самый производительный.Если вы хотите делать такие вещи, лучше используйте массив uint8
, или у вас могут возникнуть проблемы с выравниванием памяти.