1. 程式人生 > >iOS開發學習之C語言---C11 二維陣列、字串陣列、多維陣列

iOS開發學習之C語言---C11 二維陣列、字串陣列、多維陣列

//  main.m

//  C11 二維陣列、字串陣列、多維陣列

//

//  Created by xalo on 15/10/21.

//  Copyright (c) 2015 Darling.com. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

#pragma mark 二維陣列

/*⼆維陣列:有兩個下標的陣列。

     定義:型別 陣列名[常量表達式1] [常量表達式2] = {1,2...};

用普通的話來說,就是,二維陣列的第一個[ ]

表示行,第二個[ ]表示列。

    */

//定義二維陣列的第一種方式(不直觀,不能直接看出第一行是在哪裡開始結束)

//    int array[2][3] = {1,2,3,4,5,6};

//定義二維陣列的第二種方式(直觀)

//花括號{},可以區分行{123}為一行,{456}為一行

//        int array[2][3] = {{1,2,3},{4,5,6}};

//    

//        for (int i = 0; i < 2; i++) {

//            for (int j = 0 ; j < 3; j ++) {

//                printf("%d",array[i][j]);

//            }

//            printf("\n");

//        }

//陣列第三種定義方式:(注意:定義二維陣列時,可以省略行數,但是一定不能省略列數。元素個數不⾜,會⾃動補0。)

// 第三種:可以省略行,但是一定不能省略列

//        int array[][] = {1,2,3,4,5,6};//報錯

//        int array[][] = {{1,2,3},{4,5,6}};//錯誤的

//        int array[2][] = {1,2,3,4,5,6};//只給行,報錯

        int array[][3] = {1,2,4

,5,6};//只給列,正確

        //列印

        for (int i = 0; i < 2; i++) {

            for (int j = 0 ; j < 3; j ++) {

               printf("%d",array[i][j]);

            }

                printf("\n");

        }

//列印結果: 124

//           560 自動補0

        int array1[][3] = {{1,2},{3,4},{5,6}};

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

            for (int j = 0 ; j < 3; j ++) {

                printf("%d",array1[i][j]);

            }

            printf("\n");

        }

#pragma mark 字串陣列

/*字串陣列本質上是一個二維陣列

     1、訪問某個字串:陣列名[行號]

     2、訪問某個字元:陣列名[行號][列號]

     */

//字串陣列

char arr1[3][10] = {"iPhone","Android","Windows"};

//    printf("%c",arr1[0][0]);//輸出:i

//    printf("%s",arr1[2]);//只給行號就行。

for (int i = 0 ; i < 3; i++) {// 列印字串陣列時,直接在for裡給出行數,就可以了。不用兩個for

            printf("%s\n",arr1[i]);

        }

#pragma mark 三維陣列

//三維陣列

//2層,3行,4

//    int arr[2][3][4] = {0};

//右左法則

    return 0;

}

//

//  Created by xalo on 15/10/21.

//  Copyright (c) 2015 Darling.com. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

#pragma mark 二維陣列

/*⼆維陣列:有兩個下標的陣列。

     定義:型別 陣列名[常量表達式1] [常量表達式2] = {1,2...};

用普通的話來說,就是,二維陣列的第一個[ ]表示行,第二個[ ]表示列。

    */

//定義二維陣列的第一種方式(不直觀,不能直接看出第一行是在哪裡開始結束)

//    int array[2][3] = {1,2,3,4,5,6};

//定義二維陣列的第二種方式(直觀)

//花括號{},可以區分行{123}為一行,{456}為一行

//        int array[2][3] = {{1,2,3},{4,5,6}};

//    

//        for (int i = 0; i < 2; i++) {

//            for (int j = 0 ; j < 3; j ++) {

//                printf("%d",array[i][j]);

//            }

//            printf("\n");

//        }

//陣列第三種定義方式:(注意:定義二維陣列時,可以省略行數,但是一定不能省略列數。元素個數不⾜,會⾃動補0。)

// 第三種:可以省略行,但是一定不能省略列

//        int array[][] = {1,2,3,4,5,6};//報錯

//        int array[][] = {{1,2,3},{4,5,6}};//錯誤的

//        int array[2][] = {1,2,3,4,5,6};//只給行,報錯

        int array[][3] = {1,2,4,5,6};//只給列,正確

        //列印

        for (int i = 0; i < 2; i++) {

            for (int j = 0 ; j < 3; j ++) {

               printf("%d",array[i][j]);

            }

                printf("\n");

        }

//列印結果: 124

//           560 自動補0

        int array1[][3] = {{1,2},{3,4},{5,6}};

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

            for (int j = 0 ; j < 3; j ++) {

                printf("%d",array1[i][j]);

            }

            printf("\n");

        }

#pragma mark 字串陣列

/*字串陣列本質上是一個二維陣列

     1、訪問某個字串:陣列名[行號]

     2、訪問某個字元:陣列名[行號][列號]

     */

//字串陣列

char arr1[3][10] = {"iPhone","Android","Windows"};

//    printf("%c",arr1[0][0]);//輸出:i

//    printf("%s",arr1[2]);//只給行號就行。

for (int i = 0 ; i < 3; i++) {// 列印字串陣列時,直接在for裡給出行數,就可以了。不用兩個for

            printf("%s\n",arr1[i]);

        }

#pragma mark 三維陣列

//三維陣列

//2層,3行,4

//    int arr[2][3][4] = {0};

//右左法則

    return 0;

}