C語言----(二維陣列,複雜資料型別的判斷)
阿新 • • 發佈:2019-02-20
一、二維陣列的定義賦值1、定義一個三行四列的二維陣列,如下: 2、輸出陣列brr[3][4]的值,程式碼如下:
二、複雜資料型別的判斷簡單例子如下:
為了幫助理解,簡單例子如下: int (*p) [4] 陣列指標(陣列的指標) int *p [4] 指標陣列(儲存整型指標的陣列) int (*p) () 函式指標 (指向函式的指標) int *p () 指標函式(返回指標的函式)2、判斷資料型別的方法①確定它的屬性(是否為陣列、指標、函式等),挑選優先順序最高的屬性;
int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int brr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
//陣列arr與brr的初始化相同,但最好使用brr
int crr[3][4] = {1,2,3,4,5};
//行優先,即第0行元素分別為1、2、3、4,第1行第一個元素為5,其餘元素均為0
int drr[][4] = {1,2,3,4,5,6,7,8,9,10};
//第一個[ ]裡預設為3,第二個[ ]裡的4不能省
注:如果對全部元素都賦初值(即提供全部初始資料),則定義陣列時對第一維的長度可以不指定,但第二維的長度不能省。#include <stdio.h>
int main()
{
int brr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(int i=0; i<3; i++)
{
for(int j=0; j<4; j++)
printf("%d ",brr[i][j]);
printf("\n");
}
return 0;
}
3、int brr[3][4]; brr表示陣列的第0行; brr + 1表示陣列的第1行; brr[1] 相當於 &brr[1][0]; 可以理解為:二維陣列其實是一個包含陣列的陣列, 即陣列的每一個元素還是一個數組。1、資料型別的判定對於複雜的資料型別,先看優先順序。//定義一個一維陣列 int arr[4]; //此列表示型別 arr //陣列首元素的地址 int * arr + 1 int * arr[1] int arr[1] + 1 int //定義一個二維陣列 int brr[3][4]; brr int (* brr)[4] //陣列指標 brr + 1 int (* brr)[4] brr[1] int * brr[1] + 1 int * brr[1][1] int brr[1][1] + 1 int
為了幫助理解,簡單例子如下: int (*p) [4] 陣列指標(陣列的指標) int *p [4] 指標陣列(儲存整型指標的陣列) int (*p) () 函式指標 (指向函式的指標) int *p () 指標函式(返回指標的函式)2、判斷資料型別的方法①確定它的屬性(是否為陣列、指標、函式等),挑選優先順序最高的屬性;
②如果指標,考慮指向的內容;
③如果是陣列,考慮長度跟型別;
④如果是函式,考慮引數列表和返回值。