1.有乙個二維陣列 int a[3][4],對於a相關的一些指標,具體含義如下:
對於一位陣列int a[10],a是陣列首元素的位址,&a是整個陣列的位址。所以a+1和&a+1的步長不一樣,前者的步長是4,後者的步長是40。
2.定義乙個陣列型別
typedef int (myarray)[10];
myarray a;
上面這兩句的含義和:
int a[10];
作用是相同的。
3.定義乙個陣列指標:
typedef int (*mypayyar)[10]; //myparray是指向一維陣列的指標資料型別
myparray pa; //pa的步長是sizeof(int)*10=40 //pa是指向一維陣列的指標變數
//pa是乙個指向一維陣列的指標(相當於乙個二級指標),要讓它指向一維陣列int a[10],應該這麼寫:
pa = &a //注意:pa的步長和&a的步長是相等的,都是40,而a的步長是4,所以不可能是pa = a。可以參考一下int* p=null;int b=10;p=&b;陣列指標的操作和對元素指標的操作是類似的。
當然,也可以直接定義乙個指向一維陣列的指標變數:
int (*pb)[10]; //pb就是乙個指向包含10個int元素的一維陣列的指標變數,pb的步長是40
pb=&a;
C中關於陣列的一些問題
int arr 4 這裡的4必須是乙個常量常量定義方式有 1.巨集定義 define size 4 此時可以使用為 int arr size 2.列舉 enum size 3.const修飾 const int size 4 此時的const修飾的常量不可以用作陣列的常量表示式!這是因為c語言本身並...
C 指標的一些問題Mark
翻了下以前的blog,兩年以前的了。當時還說每天練一點,慢慢熟悉,簡直 雙重指標 p 假如我有乙個m n維的陣列array,想要對應到指標p q r上去 int array m n int p n int q int r m r m 好理解,r是乙個m元的陣列,每個元素是乙個指標。指標 p和陣列p到...
C 中與指標相關的一些問題
指向常量的指標型別 與 指標型別的常量 const int p null 定義了指向常量的指標型別 int x 0 定義變數x int y 0 定義變數y p x ok,讓p指向變數x p 1 error,不能改變指向常量的指標所指位址中的值 int const q y 定義了常量指標q,並讓其指向...