指標和二位陣列

c3tc3tc3t發表於2014-12-20
    
    int a[3][4] = { 0, 1,2,3,4,5,6,7,8,9,11,12};

    printf("\n%d,%d", a,*a); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(a), sizeof(*a)); // 48 16

    printf("\n%d,%d", a[0],*(a+0)); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(a[0]), sizeof(*(a+0))); //16 16
    

    printf("\n%d,%d", &a[0],&a[0][0]); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(a[0]), sizeof(a[0][0])); // 16 4

    printf("\n%d,%d", a[1],a+1); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(a[1]), sizeof(a+1)); // 16 4


    printf("\n%d,%d", &a[1][0],*(a+1)+0); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(&a[1][0]), sizeof(*(a+1))); //4,16


    printf("\n%d,%d", a[2],*(a+2)); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(a[2]), sizeof(*(a+2))); // 16 16

    printf("\n%d,%d", &a[2],(a+2)); //兩個一樣的16進位制地址
    printf("\n%d,%d", sizeof(&a[2]), sizeof(a+2)); //4 4

    printf("\n%d,%d", a[1][0],*(*(a+1)+0));//5 5
    printf("\n%d,%d", *a[2],*(*(a+2)+0)); // 8 8
    getchar();

 

相關文章