zoukankan      html  css  js  c++  java
  • 数组与指针 笔记

    // 测试多维数组与指针

    # include <stdio.h>
    int main(void)
    {
     int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
     printf("a = %d, &a[0] = %d, &a[0][0] = %d, *a = %d, **a = %d
    ", a, &a[0], &a[0][0], *a, **a);
     printf("a[0] = %d, a[0][0] = %d
    ", a[0], a[0][0]);
     int b[2][2][2] = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
     printf("b = %d, &b[0] = %d, &b[0][0] = %d, &b[0][0][0] = %d
    ", b, &b[0], &b[0][0], &b[0][0][0]);
     printf("*b = %d, **b = %d, ***b = %d, b[0] = %d, b[0][0] = %d, b[0][0][0] = %d
    ", *b, **b, ***b, b[0], b[0][0], b[0][0][0]);
     
     return 0;
    } 


     
    /*
        运行结果:
         a = 6487584, &a[0] = 6487584, &a[0][0] = 6487584, *a = 6487584, **a = 1
      a[0] = 6487584, a[0][0] = 1
      b = 6487552, &b[0] = 6487552, &b[0][0] = 6487552, &b[0][0][0] = 6487552
      *b = 6487552, **b = 6487552, ***b = 1, b[0] = 6487552, b[0][0] = 6487552, b[0][0][0] = 1
      
      --------------------------------
      Process exited after 0.01666 seconds with return value 0
      请按任意键继续. . .
     结论:
         以二维数组为例
      二维数组的起始元素为 a[0][0],它的地址可以表示为&a[0], &a[0][0], a[0], a, *a
      基于以上例子,表达式 &a[0], &a[0][0], a[0], a, *a 的值都相等。
      说明:
          虽然它们的值相同,但 a 表示第 0 行的地址,而 *a 和 &a[0][0] 表示数组元素 a[0][0]
          的地址。(a)前者为行地址,(*a)后者表示列地址。
       行地址与列地址的区分:
           例如 a 位数组第一行的地址, *a 表示数组第一行第 0 列的地址 **a 表示数组第一行
        第 0 列的值(a[0][0]). 可得出结论,行地址做 * 运算后得到列地址,列地址做 * 运
        算后得到数组元素。
    */

  • 相关阅读:
    HDU-1875-畅通工程再续(最小生成树)
    HDU-1325-Is It A Tree?(并查集+有向树)
    HDU-2473-Junk-Mail Filter(并查集删除)
    HDU-1233-还是畅通工程(最小生成树)
    POJ-2492-A Bug's Life(并查集分类)
    asp.net core 中KindEditor的使用
    使用FormsAuthenticationTicket进行登陆验证
    c#生成随机字符串
    string.Format对C#字符串格式化
    在Ubuntu上使用noip动态域名的方法(ddns)
  • 原文地址:https://www.cnblogs.com/lnlin/p/6633985.html
Copyright © 2011-2022 走看看