C 語言之二維陣列與指標的常見運算

2021-08-21 20:11:31 字數 1296 閱讀 9997

int( * p ) () 和 int  * p()區別

# int ( *p ) ()  是乙個變數說明,說明p是乙個指向函式入口的指標變數,該函式的返回值是整型量,(*p)的兩邊的括號不能少。

# int *p()  說明p是乙個指標型函式,其返回值是乙個指向整型量的指標,*p兩邊沒有括號

int *pa[3]  的含義   

#表示pa是乙個指標陣列,它有三個陣列元素,每個元素值都是乙個指標,指向整型變數。 

int   * ( * ( * fp ) ( int ) ) [10] 和 int  * ( * ( * array [5] ) () ) ()的含義

# fp 是乙個指標,指向乙個引數為int型的函式,返回值是乙個指標,這個指標指向乙個陣列,這個陣列中有十個元素,每個元素都是乙個int型的指標

# array[5]是乙個陣列,陣列中的每個元素都是乙個指標,每個指標指向乙個函式,這個函式的返回值為乙個指標,每個指標指向乙個函式,函式的返回值是int型的指標

表示形式

含義&a 

指向二維陣列的指標

a二維陣列名,指向一維陣列a[0],即第0行首位址

a[0] , *(a+0) , *a

第0行第0列元素位址

a+1 , &a[1]

第1行首位址

a[1] , *(a+1)

第1行第0列元素位址

a[1]+2 , *(a+1)+2 , &a[1][2]

第1行第2列元素位址

*(a[1]+2) , *(*(a+1)+2) , a[1][2]

第1行第2列元素的值

# [ ] 有取值的含義

int main()

, , };

int i;

int (*p)[4] = a, *q = a[0];

// int (*p)[4] = a 四個元素 每個元素 4 個位元組,p+1 加 16 個位元組

// a 是陣列名,a+1 是加一行,一行 16 個位元組,所以這條語句合法

for(i = 0; i < 3; i++)

else

}for(i = 0; i < 3; i++)

printf("%d, %d\n", *((int *)p), *q);

return 0;

}

結果

C語言之二維陣列

有兩個下標的陣列稱為二維陣列 型別 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 二維陣列的元素也稱之為雙下標變數。字串是特殊的字元陣列 字串陣列是特殊字元型二維陣列 字串陣列 存放字串的陣列。定義字串陣列 char 陣列名 常量表示式 常量表示式 三維陣列遍歷 多維陣列 int ...

C 語言之二維陣列

內容 二維陣列 一維陣列 豆角 二維陣列 定義 一維陣列 資料型別 陣列變數名 new 資料型別 陣列長度 資料型別 陣列變數名 new 資料型別 陣列長度 二維陣列 資料型別 陣列變數名 new 資料型別 行數,列數 int a new int 3,4 賦值 a 行下標,列下標 值 下標都是從 開...

C語言之二維陣列

還是乙個陣列,只不過陣列中得每乙個元素又是乙個陣列 型別 陣列名 行 列 例 int nums 2 3 2行3列的二維陣列,儲存的資料型別是int型別 char chs 3 5 3行5列的二維陣列,儲存的資料型別是char型別 a.int nums 3 5 b.int nums 2 3 c.省略行數...