怎么做
- 题面里的虚线方框就是要填的空
- 点候选项,它会填进当前高亮的那个空
- 点已填好的空,可以把选项取回来重选
- 全部填满后「提交」才会亮起
卡住了就点右下角的 👩🏫 问 AI 老师,她会给提示但不直接给答案。
结构体指针:箭头 -> 取成员
p 里存的是卡片的地址;p->成员 = (*p).成员
p
a[0]
a[1]
小林 · 92
阿杰 · 85
→
p = a; p->name 是 a[0] 的 name
p++; p 指向下一张卡片 a[1]
指针也能指向一张结构体卡片。通过指针取成员有两种写法:
#include <stdio.h>
typedef struct {
char name[20];
int score;
} STU;
int main(void)
{
STU s = {"小林", 80};
STU *p = &s; /* p 存的是 s 的地址 */
p->score = p->score + 5; /* 通过 p 改 s 的成绩 */
s.score = s.score + 10;
printf("%s %d\n", (*p).name, p->score);
return 0;
}
STU *p = &s;:p 是「指向 STU 的指针」,里面存着 s 的地址。(*p).score:先*p找到那张卡片,再用点号取成员。括号不能省:点号比 * 先算。p->score:减号加大于号拼成的「箭头」,是(*p).score的简写,二级题里最常见。- 口诀:变量用点,指针用箭头。
程序输出【0】;p->score 和【1】完全等价;如果写成 *p.score,编译器会把它理解成【2】,编译出错。
请登录后作答。
去登录
👩🏫
AI
💬 题目评论
🔒
登录并作答后可看讨论