Iraso 2022-12-06 22:59 采纳率: 40%
浏览 9
已结题

指针数组打印时出现的问题

问题遇到的现象和发生背景

指针数组打印时出现的问题

用代码块功能插入代码,请勿粘贴截图
#include<iostream>

int main(int argc, char** argv){
    int a[6]={1,2,3,2,1,1};
    int b[3]={4,5,6};
    int c[3]={7,8,9};
    int* p[3]={a,b,c};
    for(int i=0;i<3;i++){
        int* q=p[i];
        while(*q!='\0')
            printf("%d ",*q++);
        printf("\n");
    }
} 

运行结果及报错内容

打印的结果是:
1 2 3 2 1 1 68
4 5 6
7 8 9

我的解答思路和尝试过的方法

把int a[6]改成过int a[7]或者int a[5](当然int a[]里元素的个数也会相应的调整),输出的元素都正确,没有多

我想要达到的结果

为什么唯独int a[6]的时候会多出68

  • 写回答

1条回答 默认 最新

  • Norcor 2022-12-06 23:06
    关注

    因为你在5和7的时候的打印也是错误的,只是你的编译器碰巧对了而已
    在int类型的数组中,'\0'是无法作为结束标志的。只有字符串数组,即char[ ]才可以

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error