【10-7】考虑下面这些声明和数据。
struct NODE{
int a;
struct NODE *b;
struct NODE *c;
};
struct NODE nodes[5] = {
{5, nodes + 3, NULL},
{15, nodes + 4, nodes + 3},
{22, NULL, nodes + 4},
{12, nodes + 1, nodes},
{18, nodes + 2, nodes + 1}
};
(other declarations...)
struct NODE *np = nodes + 2;
struct NODE **npp = &nodes[1].b;
对下面的表达式求值,并写出它的值,同时,写明任何表达式求值过程中可能出现的副作用,你应该用最初显示的值对每个表达式求值(也就是说,不要使用某个表达式的结果来对下一个表达式求值)。假定nodes数组在内存中的起始位置为200,并且在这台机器上整数和指针的长度都是4个字节。
| 表达式 | 值 | 表达式 | 值 |
| nodes | 200(十进制地址) | &nodes[3].c->a | 200(十进制地址) |
| nodes.a | <

本文探讨了C语言中结构体数组的指针运用,详细解析了涉及结构体指针的声明和数据操作。通过示例,解释了如何通过指针访问结构体数组元素,并强调了运算符优先级的重要性,特别是涉及到多重指针和结构体成员访问时的注意事项。
最低0.47元/天 解锁文章
1115

被折叠的 条评论
为什么被折叠?



