陣列指標:a pointer to an array,即指向陣列的指標

weixin_30443895發表於2013-02-16
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int test[2][3]={{1,2,3},{4,5,6}};    
    int (*A)[3];    
    A = &test[0];// A = test    
    cout<<(*A)[0]<<endl;
    cout<<(*A)[4]<<endl;    
    cout<<**A<<endl;
    cout<<**(A+1)<<endl;  // cout<<**(&*A+1)<<endl
    cout<<*(*A+1)<<endl;

}
int a[]={1,2,3,4,5};
int *ptr =(int*)(&a+1);
cout<<*(a+1);  //2
cout<<*(ptr-1);  //5

 陣列名a本身就是指標,再加上個&就變成了雙指標,這裡的雙指標就是指二維陣列,&a+1,就是整體陣列加一行,ptr指向a的第6個元素。

*A 可以看成一個(含有3個int元素的陣列的)陣列名,所以類推,去掉*,等於加上&, A是雙指標,加1,就是陣列整體加一行。

轉載於:https://www.cnblogs.com/buptmemory/archive/2013/02/16/2913092.html

相關文章