#include <stdio.h>
int main()
{
int a[3]={1,2,3};
int (*p)[3];
p=a;
printf("%d\n",(*p)[1]);
printf("%d\n",*(*p+1));//*p+1是指加了一個單位 *p為數(shù)組的第一個元素的地址
return 0;
}
指針的指針
#include <stdio.h>
int main()
{
int a=111;
int *p=&a;
int **pp=&p;//pp存p地址,即是p的類型,即"int *"http:// pp是指向指針的指針
printf("%d %d\n",*pp,&a);//*pp=p=&a
printf("%d %d\n",**pp,a);//*(*pp)=*p=a
return 0;
}
利用指針來儲存不定個數(shù)的數(shù)字
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,sum=0;
int *grade;
scanf("%d",&n);
//malloc 是取一段儲存用于存放grade
if( grade=(*int)malloc(sizeof(int)*n)==NULL)//占用內(nèi)存
//NULL指的是空值、無值。
exit(-1);//exit(x)(x不為0)都表示異常退出
//exit(0)表示正常退出
for(i=0;i<n;i++)
scanf("%d",&grade[i]);
for(i=0;i<n;i++)
sum+=grade[i];
printf("%.2f\n",(float)sum/n);
free(grade);//歸還內(nèi)存
return 0;
}