指针真的想不明白无语了

用指针编程输入11个字符串,对他们进行冒泡排序,并输出结果。求大神


#include<stdio.h>
#include<string.h>
#define M 11
#define N 20
int main(){
    char str[M][N];
    char  (*p)[N]=&str[0];
    char temp[N];
    int index = 0;
    for(int i=0;i<M;i++){
        scanf("%s",p+i);
    }
    for(int i=0;i<M-1;i++){
        for(int j=i+1;j<M;j++){
            if(strcmp(*(p+i),*(p+j))>0){
                strcpy(temp,*(p+i));
                strcpy(*(p+i),*(p+j));
                strcpy(*(p+j),temp);
            }
            
        }
    }
    printf("排序后:\n");
    for(int i=0;i<M;i++){
        printf("%s\n",p+i);
    }
}

img


有帮助的话采纳一下