机智如我么么哒 发表于 2019-9-21 15:10:14

为什么我的u没有输出出来?

有大佬吗,这是我的代码,u没输出出来
#include<stdio.h>
int main()
{
        char *array={"abcde","fghi","jklmn","opqrs","tuv"};
        char *(*p)=&array;
        int i,j;
        for(i=0;i<5;i++)
        {
                for(j=0;(*p)!='\0';j++)
                {
                printf("%c ",(*p));}
       
        printf("\n");}
        return 0;
}
打印结果是
afjo t
bg kp 这里少了u
chl qv
dim r
e   ns

机智如我么么哒 发表于 2019-9-21 15:12:17

上面的结果也没有s

理想小青年 发表于 2019-9-21 16:00:25

本帖最后由 理想小青年 于 2019-9-21 16:03 编辑

问题在你的判断条件 (*p)!='\0',判断的是定义的数组char *array={"abcde","fghi","jklmn","opqrs","tuv"};
也就是说
第二次输出少u,循环了4次 --> fghi \x0
第五次输出, 循环3次-- > tuv \x0
你是根据每个二维数组去判断输出的,你没有判断内存布局中bgkpu

机智如我么么哒 发表于 2019-9-21 16:38:17

理想小青年 发表于 2019-9-21 16:00
问题在你的判断条件 (*p)!='\0',判断的是定义的数组char *array={"abcde","fghi","jklmn","opqrs"," ...

谢谢,我懂了,是因为数组个数不同的原因
页: [1]
查看完整版本: 为什么我的u没有输出出来?