日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

從頭學習C語言之二維數組_C 語言

作者:極致獵手 ? 更新時間: 2022-04-08 編程語言

二維數組:

引入一個想法:
一個變量:相當于一個點。
一維數組(也就是數組):點匯聚成為一條直線。
二維數組:直線匯聚成一個平面。
三維數組:平面匯聚成立體圖形。

語法:

類型 數組名[常量表達式][常量表達式]

  • int a[6][6];//6*6,6行6列
  • char b[4][5];//4*5,4行5列
  • double c[6][3];//6*3,6行3列

二維數組存放方式:

在這里插入圖片描述

二維數組的訪問:

  • 數組名[下標][下標]
  • a[0][0];//訪問a數組中第一行第一列的元素
  • b[1][3];//訪問b數組中第二行第四列的元素
  • c[3][3];訪問c數組中第四行第四列的元素
  • 同樣要注意下標的取值范圍,以防止數組的越界訪問。
  • —比如int a[3][4],其“行下標”的取值范圍是0 ~ 2,“列下標”的取值范圍是 0 ~ 3,超出任何一個下標的訪問都是越界訪問。(非常容易中招

二維數組的初始化

  • 二維數組在內存中是線性存放的,因此可以將所有的數據寫在一個花括號內:
  • int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  • 為了更直觀的表示元素的分布,可以用大括號將每一行的元素括起來:
  • int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 或者
  • int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 二維數組也可以僅對部分元素賦初值:
  • int a[3][4]={{1},{5},{9}};
  • 如果希望整個二維數組初始化為0,呢么直接在大括號里寫一個0即可:
  • int a[3][4]={0};
  • C99同樣增加了一種新特性:指定初始化的元素。這樣就可以只對數組中的某些指定元素進行初始哈賦值,而未被賦值的元素自動初始化為0:
  • int a[3][4]={[0][0]=1,[1][1]=2,[2][2]=3};
  • 二維數組的初始化也能偷懶,讓編譯器根據元素的數量計算數組的長度。但只有第1維的元素個數可以不寫,其他維度必須加上:
  • int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

示例:

例一:二維數組的舒服寫法:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={
       {1,2,3,4},
       {5,6,7,8},
       {9,10,11,12}
     };
     int i,j;
    for(i=0;i<3;i++)
    {
      for(j=0;j<4;j++)
      {
        printf("%d ",a[i][j]);
      }
     printf("\n");
     }
  printf("\n");
    return 0;
  }  

例二:對前三行每一行的第一個元素賦初值,其他沒有被賦值的自動補充為0:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={{1},{2},{5}};
     //把前三行每一行的第一個元素賦初值,其他沒有被賦值的自動補充為0。
   //如果賦值的數,多于三個,后面的會報錯,并且自動不算數。
     //如果沒有對數組進行賦值,則得出的結果為隨機數。
    int i,j;
    for(i=0;i<3;i++)
    {
    for(j=0;j<4;j++)
      {
        printf("%d ",a[i][j]);
      }
      printf("\n");
   }
    return 0;
  }  
 

例三:指定數組元素,其他元素自動補充為0:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={[2][3]=1,[2][1]=8,[1][2]=5};
     int i,j;
     for(i=0;i<3;i++)
     {
       for(j=0;j<4;j++)
       {
        printf("%d ",a[i][j]);
      }
      printf("\n");
    }
    return 0;
  }  

例四:證明只有第一維可以不寫數值:

   #include<stdio.h>  
   int main()  
   {  
     int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};//只有第一維可以不寫
     int i,j;
    for(i=0;i<3;i++)
     {
       for(j=0;j<4;j++)
       {
        printf("%d ",a[i][j]);
      }
    printf("\n");
   }
    return 0;
  }  

總結

原文鏈接:https://blog.csdn.net/HICKER_BOY/article/details/122658153

欄目分類
最近更新