怎么做
  1. 题面里的虚线方框就是要填的空
  2. 点候选项,它会填进当前高亮的那个空
  3. 点已填好的空,可以把选项取回来重选
  4. 全部填满后「提交」才会亮起
卡住了就点右下角的 👩‍🏫 问 AI 老师,她会给提示但不直接给答案。

指针数组:换的是箭头不是字符串

👁️ 22 人浏览 💬 0 人评论 ❤️ 添加收藏

交换指针数组的两格:换的是箭头,字符串一个字也没搬

p[0]

p[1]

p[2]

→ cat
→ dog
→ pig
cat
dog
pig

字符串(不动)

好几个字符串要一起管时,可以用指针数组:char *name[3]; 因为 [] 比 * 先结合,name 首先是一个有 3 个元素的数组,每个元素都是一个 char *,指向一个字符串。 name[i] 就是第 i 个字符串,*(name[i] + 1) 是它的第 2 个字符。交换两个元素只是让箭头换个方向,字符串本身不搬家。

#include <stdio.h>

int main(void)
{
    char *name[3] = {"Tom", "Amy", "Bob"};
    char *t;
    t = name[0];
    name[0] = name[2];
    name[2] = t;
    printf("%s %c %s\n", name[0], *(name[1] + 1), name[2]);
    return 0;
}

程序输出【0】;交换时,内存里被搬动的字符一共有【1】个;name 这个数组有【2】个元素。

请登录后作答。
去登录
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论