zoukankan      html  css  js  c++  java
  • 深入理解二维数组

     1 #include<stdio.h>
     2 #define debug 0
     3 int main()
     4 {
     5     int a[3][4]={{8,2,6,4},{1,4,7,9}},i,j;
     6     #if debug
     7     a++;
     8     a[0]++;
     9     a[1]++;
    10     a[2]++;
    11     a[3]++;
    12     #endif 
    13     printf("a:%p      a+1:%p
    
    ",a,a+1);//相差16字节 
    14     
    15     printf("a[0]:%p  a[0]+1:%p  &a[0][1]=%p
    ",a[0],a[0]+1,&a[0][1]);    
    16     printf("a[1]:%p  a[1]+1:%p  &a[1][1]=%p
    ",a[1],a[1]+1,&a[1][1]);
    17     printf("a[2]:%p  a[2]+1:%p  &a[2][1]=%p
    ",a[2],a[2]+1,&a[2][1]);
    18     printf("a[3]:%p  a[3]+1:%p  &a[3][1]=%p
    ",a[3],a[3]+1,&a[3][1]);
    19     return 0;
    20 }//a[0] ,a[1],a[2],a[3]是一维数组名,代表一维数组的起始地址,是地址常量
    21 //a+1和a的地址差16个字节,相当于四个元素,a代表第一行的地址,a+1代表第二行的地址。
    22 /*a[0]+1和a[0]的地址差4个字节,相当于1个数组元素。因此a[0]+1相当于元素a[0][1]的地址
    23 a[1]+1=&a[1][1],a[2]+1=&a[2][1] */

  • 相关阅读:
    Set,List,Map的区别
    阅读笔记15
    阅读笔记14
    阅读笔记13
    阅读笔记12
    阅读笔记11
    阅读笔记10
    架构漫谈读后感
    阅读笔记1
    暑期周记8
  • 原文地址:https://www.cnblogs.com/renchong/p/5524105.html
Copyright © 2011-2022 走看看