龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(22): 数据类型 - 多维数组与指针(3)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
5. 再探数组的指针地址: #include int main(void) { char cs[2][3] = { {'A','B','C'}, {'D','E','F'} }; //在本例中(二维数组) // cs 是指向数组 cs[0] 的地址 // *cs 是指向 cs[0][0]

  5. 再探数组的指针地址:

#include 

int main(void)

{

  char cs[2][3] = {

           {'A','B','C'},

           {'D','E','F'}

          };

  //在本例中(二维数组)

  // cs 是指向数组 cs[0] 的地址

  // *cs 是指向 cs[0][0] 的地址

  printf("%p, %pn", cs, *cs);

  

  // **cs 指向 cs[0][0] 的值

  printf("%c, %cn", **cs, cs[0][0]);  

  getchar();

  return 0;

}

  6. 使用指针遍历三维数组:

#include 

int main(void)

{

  char cs[2][2][3] = {

             {

              {'A','B','C'},

              {'D','E','F'}

             },

             {

              {'1','2','3'},

              {'4','5','6'}

             }

            };

  int i;

  int count = sizeof cs / sizeof cs[0][0][0];

  for (i = 0; i < count; i++) {

    printf("%cn", *(**cs + i));

  }

  getchar();

  return 0;

}

  7. 遍历多维数组还是用指针变量更容易理解:

#include 

int main(void)

{

  char cs[2][2][3] = {

             {

              {'A','B','C'},

              {'D','E','F'}

             },

             {

              {'1','2','3'},

              {'4','5','6'}

             }

            };

  char *p = (char *)cs; /* 相对上面的例子, 这里加了类型转换; 这样编译器就没有提示了 */

            

  int i;

  int count = sizeof cs / sizeof cs[0][0][0];

  for (i = 0; i < count; i++) {

    printf("%cn", *p++);

  }

  getchar();

  return 0;

}

精彩图集

赞助商链接