struct Stu *p = NULL; struct Stu obj; //栈区结构体 p = &obj; //指向栈区 p->age = 18; (*p).age = 18;
时间: 2024-04-20 08:23:40 浏览: 27
这段代码是在定义一个指向结构体的指针变量 `p`,并将其初始化为 `NULL`。然后创建一个结构体对象 `obj`,该对象被分配在栈区。接下来,将指针 `p` 指向结构体对象 `obj`。最后,使用指针 `p` 来访问结构体成员 `age` 并将其赋值为 18。这里使用了两种不同的语法来访问结构体成员,`p->age` 和 `(*p).age` 等效,都将结构体指针解引用并访问其中的成员。
相关问题
struct Stu obj[3] = { { 18, "lily", 99 }, { 22, "lucy", -80 }, { 33, "mike", 59 } }; struct Stu obj2[3] = { 18, "lily", 99, 22, "lucy", -80, 33, "mike", 59 }; struct Stu tmp[3]; int i = 0; for (i = 0; i < 3; i++) { (tmp + i)->age = 18 + i; (*(tmp + i)).age = 18 + i; tmp[i].age = 18 + i; //常用 }
这段代码定义了一个包含三个 `u` 结构体对象的数组 `obj 和 `obj2`。每个结构对象都有三个成员变量`age`、`name` 和 `score`。
然后创建了一个临时的 `St` 结构体数组 ``,并使用循对其进行赋值。在循环中,通过指针运算 `(tmp + i)->age` 或 `(*(tmp + i)).age`,以及数组下标 `tmp[i].age`,将每个结构体对象的 `age` 成员变量设置为 `18 + i` 的值。
这种循环赋值的方式是常见的,可以通过指针运算或数组下标来访问结构体数组的成员变量,并对其进行赋值操作。
阅读全文