INTERSTRINGFUCK 2022-04-07 11:23 采纳率: 100%
浏览 42
已结题

c语言字符输出问题很奇怪为什么这样输出

#include <stdio.h>
#include<string.h>
int main(void) {

int i;
char* mystr = "Dream of China";
for (i = 2; i < strlen(mystr) - 2; i++)
{
printf("%c", (mystr + i));
};
return 0;
}
输出结果是
Dream of China*
为什么为什么呢这是

  • 写回答

3条回答 默认 最新

  • 关注

    解释如下:

     mystr是字符串的首地址,在for循环中,i从2开始遍历,遍历的长度到strlen(mystr) - 2,也就是最后的两个 * 字符不会被显示。
        mystr + 0对应第一个字符 *
        mystr + 1对应第二个字符 *
        mystr + 2对应第三个字符 *
        mystr + 3对应第四个字符 *
        mystr + 4对应第五个字符 *
        mystr + 5对应第六个字符 D
        mystr + 6对应第七个字符 r
        mystr + 7对应第八个字符 e
        ... 以此类推
            在for循环中从i = 2开始循环输出(也就是从第3个*开始输出),直到倒数第二个字符为止(最后二个字符不输出)。
            这时候的输出结果是***Dream of China***
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重