二維數組的定義和使用


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

 

int main01()

{

  //一維數組:數據類型 數組名[元素個數]={值1,值2}

  /*二維數組數據類型 數組名[行][列]=

  {
    {值1,值2},
    {值3,值4}
  }
  */

  int arr [2] [3]=

  {

    {1,2.3}.

    {4,5,6}

  };

  arr[1][2] = 20;//6=20

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

  {
    for (int j = 0; j < 3; j++)
    {
      printf("%d\t", arr[i][j]);
    }  
    printf("\n");

  }

  

  printf("二維數組大小:%d\n", sizeof(arr));//行*列*數據類型 2*3*4=24
  printf("二維數組一行的大小%d\n", sizeof(arr[0]));//12
  printf("二維數組元素大小%d\n", sizeof(arr[0][0]));//4
  printf("二維數組行數:%d\n", sizeof(arr) / sizeof(arr[0]));//24/12=2
  printf("二維數組列數:%d\n", sizeof(arr[0]) / sizeof(arr[0][0]));//12/4=3

  return 0;

//結果

}

 

int main02()

{

  int arr[2][3]=

  {
    {1,2,3},
    {4,5,6}
  };

  //for(int i=0;i<6;i++)

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

  {

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

    {

      printf("%p\n", &arr[i][j]);

    }

  }

  printf("\n\n\n");

 

  

  //二維數組首地址
  //arr[0]=100;err//二維數組中一個下標,表示一行的數據,不是一個具體的值
  printf("%p\n", arr);
  printf("%p\n", arr[0]);//第一行與第二行相差12個地址
  printf("%p\n", arr[1]);//第二行

  printf("%p\n", &arr[0][0]);//[0][0]是一個值,需要加上&
  printf("%p\n", &arr[0][1]);//[0][0]和[0][1]相差4個地址

  return 0;

//結果

}

 

int main03()

{ 

  //二維數組初始化
  //int arr[2][3] = { {1,2,3},{4,5,6} };


  //int arr[][3] = { 1,2,3,4,5,6 };//將2省略,會根據3列知2行
  //int arr[][3] = { 1,2,3,4,5,6,7 };//{1,2,3},{4,5,6},{7,0,0}會補0
  //int arr[][] = { 1,2,3,4,5,6 };err;列不能省略,只有挨着數組名的可以省略
  //int arr[][3]={0};1行3列,相當於一維數組

  int arr[2][3] =  {1,2,3,4,5,6};//一般不這樣寫

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

  {

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

    {

      printf("%d\t", arr[i][j]);

    }

    printf("\n");

  }

  return 0;

//結果

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM