武夷学院学习吧 关注:1贴子:30
  • 3回复贴,共1

数组与指针

只看楼主收藏回复

1、数组为在内在中开辟的一块连续的空间,为了解决多个同类值的存储问题。例如,要存储100位同学的年龄,我们不可能去定义100个变量,在这种情况下数组的优势就出来了。
2、数组变量,指向所开辟内存空间中的第一个单元的地址。如:int a[]={10,20,30,40,50},a其实为一个指针。int *p=a;


IP属地:福建1楼2012-10-27 14:28回复
    void main()
    {
    int a[]={10,20,30,40,50};
    int *p;
    p=a;
    int i;
    printf("address of a=%d\n",*a);
    for (i=0;i<5;i++)
    printf("p=%d; &p=%d\n",*p++,p);
    }


    IP属地:福建2楼2012-10-27 16:34
    回复
      void main()
      {
      int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
      int *p; p=*a;
      printf("address of a=%d\n",a);
      printf("address of a[0]=%d,&a[0][0]=%d\n",a[0],&a[0][0]);
      printf("----------------------------------------\n");
      printf("address of a[0]+1=%d,&a[0][1]=%d\n",a[0]+1,&a[0][1]);
      printf("----------------------------------------\n");
      printf("address of a+1=%d,a[1]=%d,&a[1][0]=%d\n",a+1,a[1],&a[1][0]);
      }


      IP属地:福建3楼2012-10-29 17:49
      回复
        void main()
        {
        int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
        int *p; p=*a;//a[0];
        int i;
        //printf("address of p=%d\n",&p);
        //printf("value of p=%d\n",*(p+9));
        printf("address of *a=a=a+0=*a+0=%d\n",*a+3);
        printf("address of a+1=%d=*(a+1)=%d\n",a+1,*(a+1));
        printf("address of a[0]=%d,&a[0][0]=%d\n",a[0],&a[0][0]);
        printf("----------------------------------------\n");
        printf("address of a[0]+1=%d,&a[0][1]=%d\n",a[0]+1,&a[0][1]);
        printf("----------------------------------------\n");
        printf("address of a+1=%d,a[1]=%d,&a[1][0]=%d\n",a+1,a[1],&a[1][0]);
        printf("address of *(a+1)+1=&a[1][1]=%d\n",*(a+1)+1);
        printf("address of a[0]+3*1+1=a[1][1]=%d\n",a[0]+3*1+1);
        int x; //------------指针数组-----------------//
        int *pr[4];//基类型为整型的指针数组,存储整形变量的地址,本质还是一个数组
        pr[3]=a[0];//指针数组用来存储某种基类型的指针
        pr[2]=&x; //-----------指向数组的指针-----------//
        int (*pt)[3];//指向含有3个元素的数组的指针,其及类型为有三个整型元素的数组,本质是一个指针 int ax[3]; pt=&ax; pt=&a[1];//指向a的第二行那个拥有3个元素的数组
        pt=a;
        }


        IP属地:福建4楼2012-10-31 19:54
        回复