首页投稿(暂停使用,暂停投稿)程序员每周500字

C语言的指针(进阶篇章之二)

2016-05-29  本文已影响261人  遮天的龙

指针遇到数组,不得不说的“秘密”

一、数组的访问方式

二维数组在内存储中存储形式
 #include <stdio.h>
 int main()
 {
   int a[2][3] = {{1,2,3},{10,20,30},{100,200,300}};
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<4; j++)
      {
         printf("%p ",&a[i][j]);
      }
     putchar(10);
   }
    //研究数组名a的大小
    printf("a = %p\n",a);
    printf("a + 0 = %p\n",a+0);
    printf("a + 1 = %p\t",a+1); 
    printf("a + 2 = %p\n",a+2);
    //研究数组a的每个元素的大小
    printf("a[0] = %p\n",a[0]);
    printf("a[1] = %p\t\t",a[1]);
    printf("a[1] + 1 = %p\t",a[1]+1);
    //研究二维数组到一维数组的关系化
    printf("*(a+1)+1) = %d\t",*(a+1)+1));
    printf("*(*(a+1) + 1) = %d\n",*(*(a+1)+1));
    printf("&a[1] +1 = %p\n",&a[1]+1);
    return 0;
 }

二、指针与数组参数

【c】实参是数组指针,形参是数组指针

 主调函数:
 int a[40];
 int *p=a;
 function(p);
 被调函数:
 function(int *q) {......}

【d】实参是数组指针,形参是数组

 主调函数:
 int a[40];
 int *p=a;
 function(p);
 被调函数:
 function(int a[]) {......}

三、指针与字符串

上一篇 下一篇

猜你喜欢

热点阅读