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

字符指针走字符串

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

字符串在内存里是一个字符挨一个字符排着,最后跟一个 '\0' 表示结束。所以字符指针可以像上一关那样「走」字符串:

  • char *p = s;:p 指向 s 的第一个字符,*p 是一个字符;
  • printf("%s", p):从 p 指的位置开始,一直输出到 '\0';所以 p + 2 就是「从第 3 个字符开始」;
  • 遍历的固定写法:while (*p != '\0') p++;,循环结束时 p 停在 '\0' 上。

字符数组和字符指针不一样:char s[] = "abc"; 是一个数组,内容能改,但 s 不能改去指别处; char *t = "abc"; 让 t 指向一个字符串常量,t 可以改去指别的字符串(t = "xyz";),但不能改它的内容(t[0] = 'A'; 运行会出错)。

#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[] = "campus";
    char *p = s;
    printf("%s\n", p + 3);
    p = p + 1;
    printf("%c %c\n", *p, *(p + 2));
    printf("%d\n", (int)strlen(p));
    return 0;
}

第一行输出【0】;第二行输出的两个字符依次是【1】【2】;第三行输出【3】。

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