假设我有两个结构,
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