首页 > C > 指针 阅读:57,774

指针与数组关系

< 上一页 常量指针与指针常量 字符指针 下一页 >

现在大家已经明白,数组名,其实是一个常量指针:

int a[10];

a的类型为:int * const a;//a是常量指针

 

因此在访问数组元素的时候:

a[i], *(a+i)都可以访问第i个元素的值。而&a[i]a+i都是第i个元素的地址。同样,我们也尅定义一个整数指针pa指向数组的首地址:

 

int *pa=&a[0];

int *pa=a;

因此pa+i也是第i个元素的地址,而*(pa+i)pa[i]引用的也是a[i]的值。

利用指针与数组的关系,我们可以动态的分配一段空间,来存放一个班级学生的成绩,这样可以来表示不同班级学生的人数:

int _tmain(int argc, _TCHAR* argv[])

{

         int number = 0;

         int sum = 0;

 

         printf("Please input the number of students\n");

         scanf("%d", &number);

         if(number<=0)

              return -1;

 

         int *pscore = (int *)malloc(number*sizeof(int));

         if(pscore==NULL)

         {

                   printf("memory is not enough\n");

                   return -1;

         }

 

         memset(pscore, 0, number*sizeof(int));

 

         for(int i = 0;i<number;i++)

         {

                   printf("Please input the score %d\n", i);

                   scanf("%d",pscore+i);//&pscore[i]是可以的

         }

 

         for(int i=0;i<number;i++)

         {

                   sum += pscore[i];//*(pscore+i)是可以的

         }

 

         printf("The average is:%d\n", sum/number);

         free(pscore);

         return 0;

}

< 上一页 常量指针与指针常量 字符指针 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注