假设我有两个结构,
struct ptr1
{
struct ptr2 *ptrtoptr;
};
struct ptr2
{
int name;
};
Run Code Online (Sandbox Code Playgroud)
主要功能如下:
int main()
{
struct ptr1 *var1;
struct ptr2 *var2;
(code for manipulating structure element name);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何name通过指针操纵变量数据var1?假设两个指针都已指向某个地址.
它是否正确?var1->(var2->name)=(some value)还是(var1->var2)->name=(some value)?
如何通过指针var1操作变量名的数据?
使用:
var1->ptrtoptr->name = some_value ; // or (var1->ptrtoptr)->name
Run Code Online (Sandbox Code Playgroud)
既不的var1->(var2->name)=(some value)或(var1->var2)->name=(some value)有意义,因为var2不是的成员ptr1,其可以不使用访问var1
注意:另外,关于运算符关联性的注意事项,运算符->具有从左到右的关联性,因此var1->(ptroptr->value)不会相同var1->ptrtoptr->name