C语言关于指向指针的指针的一段小程序

来源:百度知道 编辑:UC知道 时间:2024/06/30 18:21:32
#include<stdio.h>
void main()
{
int **p,*pt[10],a[10],i,n;
void change(int **,int);
printf("n=");
scanf("%d",&n);
for(i=0;i<n;i++)
pt[i]=&a[i];
for(i=0;i<n;i++)
scanf("%d",pt[i]);
for(i=0;i<n;i++)
printf("%4d",*pt[i]);
putchar('\n');
p=pt;
change(p,n);
for(i=0;i<n;i++)
printf("%-4d",**(p+i));
getch();
}
void change(int **p,int n)
{int i,j;
int *t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i;j++)
if(**(p+j)>**(p+j+1))
{t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}

错误的程序:
#include<stdio.h>
void main()
{
int **p,*pt,a[10],i,n;
void change(int **,int);
printf("n=");
scanf("%d",&n);
pt=a;
for(i=0;i<n;i++)
scanf("%d",pt+i);
for(i=0;i<n;i++)
printf("%4d&qu

这是很简单的,指针变量要对位.
字符指针不能用于数字变量
整型指针不能用于浮点型的变量
数组指针当然不能用一般指针代替了

因为你把指向数组的指针由指针数组改成指针了。明白了吧?