Cha*_*ani 5 c c++ memory struct pointers
可以说我有一个结构:
struct ABC
{
char a;
char b;
char c;
}
Run Code Online (Sandbox Code Playgroud)
我可以声明指向上述结构的指针:
struct ABC** abc
现在abc是一个指向结构指针的指针*abc,*abc是一个指向结构的结构指针abc.从而; sizeof(**abc)将是4,sizeof(*abc)也将是4并且sizeof(abc)将是3(考虑指针大小为4个字节,字符大小为1个字节).
我的问题是:
如何声明指向成员变量字符指针c使用abc了高于申报?
sizeof(**abc) will be 4, sizeof(*abc) will also be 4 and sizeof(abc) will be 3
Run Code Online (Sandbox Code Playgroud)
我认为应该是,假设没有填充结构,
sizeof(**abc) will be 3, sizeof(*abc) will also be 4 and sizeof(abc) will be 4
^^^ ^^^
Change here change here
Run Code Online (Sandbox Code Playgroud)
要获得指向成员变量c的指针
&(*abc)->c
Run Code Online (Sandbox Code Playgroud)
注意周围的paranthesis *abc.原因是它->具有更高的优先级*,因此您需要确保首先发生第一个取消引用(从指针指向指针).
或者你可以做到
&(**abc).c
Run Code Online (Sandbox Code Playgroud)
括号的相同原因......在应用member-selection-via-object-name之前需要确保已取消引用(两次)..
| 归档时间: |
|
| 查看次数: |
7802 次 |
| 最近记录: |