C语言二级计算机考题

img


看解没看明白!有点想不通!想知道这个属于字符串数组的知识吗?还是什么知识

注释了一下,可供参考:

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

    char *mm[4]={"abcd","1234","mnop","5678"};//定义一个二维指针数组
    char **pm=mm;//定义一个指针的指针指向指针数组名
    int i;
    
    for(i=0; i<4; i++) 
        printf("%s",pm[i]+i);//这里的pm[i]+i就是mm数组的第i行的字符串从第i个开始输出,直到‘\0’结束,所以i=0,输出的就是abcd,i=1输出的就是234,i=2输出的是op,i=3输出的是8

      printf("\n");
    return 0;
}

运行结果如图:

img

如有帮助,还请帮忙点下采纳!感谢!

当然是字符串知识了,也包括数组知识
pm[i]+i,由于i从0到3变化,所以逐个遍历所有字符串,pm[i]表示第几个字符串,+i表示字符串的第几个字符开始
pm[0]+0就是第0个字符串
pm[1]+1就是第1个字符串的第1个字符开始
如此类推