c语言二级指针使用问题

题目是这样

img


我的代码

img


不知道为啥没有输出结果,可能是二级指针的使用有问题,改成一级指针就可以了
不知道是哪里不对
int main(){ void sort(int** p, int n); int a[6], i, * p, ** p1; for (i = 0; i < 6; i++) scanf_s("%d", &a[i]);//输入6个数 p = a; p1 = &p; sort(p1, 6);//排序 for (i = 0; i < 6; i++) printf("%d ", *p1[i]);//输出 return 0;}void sort(int** p, int n){ int i, j, temp; for (i = 0; i < n - 1; i++) for (j = 0; j < n - 1 - i; j++)//冒泡排序 { if (**(p + j) > **(p + j + 1)) { temp = **(p + j); **(p + j) = **(p + j+1); **(p + j+1) = temp; } }}

void sort(int** p, int n)
{
int i, j, temp;
int* p1 = *p;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - 1 - i; j++)//冒泡排序
{
if (*(p1 + j) > *(p1 + j + 1))
{
temp = *(p1 + j);
*(p1 + j) = *(p1 + j + 1);
*(p1 + j + 1) = temp;
}
}
}

你可以这样写,好理解