10.3 指向指针的指针
一个指针变量可以指向整型变量、实型变量、字符类型变量,当然也可以指向指针类型变量。当这种指针变量用于指向指针类型变量时,则称之为指向指针的指针变量。
例使用指向指针的指针输出12个月
#include<stdio.h>
int main()
{
int i;
char **p;
char* month[] =
{
"January","February","March","April","May","June","July","August","September","October",
"November","December"
};
for (i = 0;i < 12;i++)
p=month+i;
printf("%s\n",*p);
}
例利用指向指针的指针输出一维数组中是偶数的元素,并统计偶数的个数。
#include<stdio.h>
int main()
{
int a[10],*p1,**p2,i,n=0;
printf("please input:\n");
for (i = 0;i < 10;i++)
{
scanf_s("%d",&a[i]);
}
p1 = a;p2 = &p1;
printf("the array is:");
for (i = 0;i < 10;i++)
{
if(*(*p2+i)%2==0)
{
printf("%5d",*(*p2+i));
n++;
}
}
printf("\n");
printf("the number is:%d\n",n);
}
上述程序可以改写为:
#include<stdio.h>
main()
{
int a[10],*p1,**p2,n=0;
printf("please input:\n");
for(p1=a;p1-a<10;p1++)
{
p2=&p1;
scanf_s("%d",*p2);
}
printf("the array is:");
for(p1=a;p1-a<10;p1++)
{
p2=&p1;
if(**p2%2==0)
{
printf("%5d",**p2);
n++;
}
}
printf("\n");
printf("the number is:%d\n",n);
}