Set*_*hot 1 c arrays syntax pointers
我知道c中有以下两个相同的东西(因为偏移和数组)
someArray[i] //ith element of someArray
*(someArray + i) //ith element of someArray
Run Code Online (Sandbox Code Playgroud)
但是对于结构体,相同的语法似乎并没有很好地保持......
someStruct[i]->*(someArray + j) //compiler error
*(someStruct + i)->someArray[j] //Also compiler error
Run Code Online (Sandbox Code Playgroud)
无论如何使用指针/偏移表示法(第二个)来表示结构的元素?
假设someStruct是一个结构数组,并且someArray是数组类型的结构成员,那么这些结构中的任何一个都是有效的:
*(someStruct[i].someArray + j)
Run Code Online (Sandbox Code Playgroud)
要么
(*(someStruct + i)).someArray[j]
Run Code Online (Sandbox Code Playgroud)