二级指针:
引用: http://www.51testing.com/?uid-39211-action-viewspace-itemid-80306
其中有:用指向指针的指针变量输出二维数组
for(i=0;i<2;i++)/*用指向指针的指针变量输出二维数组*/
{
p2=b[i];
p3=&p2;
for(j=0;j<2;j++)
printf("%4d",*(*p3+j));}
不知道 *(*p3 + j) 与 **(p3+j) 是否一样?
引用:
http://book.51cto.com/art/201104/255725.htm
【实例11.14】 使用指向指针的指针输出一年中的12个月
- #include<stdio.h>
- 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>
- main()
- {
- int a[10],*p1,**p2,i,n=0; /*定义数组、指针、变量等为基本整型*/
- printf("请输入10个数值:\n");
- for(i=0;i<10;i++)
- scanf("%d",&a[i]); /*给数组a中各元素赋值*/
- p1=a; /*将数组a的首地址赋给p1*/
- p2=&p1; /*将指针p1的地址赋给p2*/
- printf("数组中的偶数为:\n");
- for(i=0;i<10;i++)
- {
- if(*(*p2+i)%2==0)
- {
- printf("%5d",*(*p2+i)); /*输出数组中的元素*/
- n++;
- }
- }
- printf("\n");
- printf("数组中偶数的个数:%d\n",n);
- }
上述通过间取得到存储的变量方式不同。