c语言 一/二维数组

菜鸟学习笔记  欢迎大佬指教

一维数组:

    声明:int  arr[10]; //声明一个一位数组可以存放10个(int)整形的数组

计算该数组的大小:

  • sizeof(arr) 会返回数组 a 占用的总字节数。
  • sizeof(int) 会返回单个 int 类型变量占用的字节数。

      我们使用总字节数/单个字节数就可以得到:   数组元素中的数量

   例如:

  1 #include <stdio.h>
  2 
  3 
  4 int main(){
  5 int arr[5]={1,2,3,4,5};
  6 printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4]);
  7 printf("sizeof(int)=%ld\n",sizeof(int));
  8 printf("sizeof(arr)/sizeof(int)=%ld\n",sizeof(arr)/sizeof(int));
  9 
 10 return 0;
         

二维数组:

二维数组就相当于几个一维数组合在一起的数组;

例:arr[3][4]  就是3个一维数组  组成的而一维数组里面又有4个数组元素

注:数组里面的下标都是从0开始的;

 int   arr[3][4]={

//声明的时候表示的是元素的个数  而使用打印的时候则是需要下标来表示数组元素,而且默认从0开始  下标: 0 1 2   3
             0     {1,2,3,10},//下标从arr[0][0]开始(第一个一维数组)arr[0][4]结束
             1     {4,5,6,10},//下标从arr[1][0]开始(第二个一维数组)arr[1][4]结束
             2     {7,8,9,10} //下标从arr[2][0]开始(第三个一维数组)arr[2][4]结束
                                    };   

我们打印的时候就可以直接根据下标去打印输出需要的内容就可以了

 printf("%d",arr[1][2]);   //这样就是打印 第二个一位数组的第三个元素  “6”

单个单个去打印也比较麻烦;也可以使用循环打印;

使用for循环打印

当我们打印一维数组的时候可以使用一个for循环就可以了

例如

  

  1  #include <stdio.h>
  2 
  3    int main(){
  4    int n=sizeof(arr)/sizeof(arr[0])  //统计元素个数
  5    int arr[5]={1,2,3,4,5};
  6  for(int i=0;i<n;i++){   //打印的时候循环的次数少于元素个数就可以了 因为是从0开始的0-5是6个
                             //小于6且循环5次就可以了            
  7    printf(" %d\n",arr[i]);   
  8    }
  9    printf("\n"); //作用换行
 10    
 11   return 0;
 12   }                                                                         
               

一维数组相对简单:

二维数组打印也差不多 只要明白且套循环就可以了

for(初始条件;终止条件;更新条件){
//执行内容
    for(初始条件;终止条件;更新条件){
     //执行内容
    }
}
嵌套循环 外层执行一次 内层执行完全部

        

  1 #include <stdio.h>
  2 
  3 int main(){
  4 
  5 
  6 int   a[3][4]={ 
  7                {1,2,3,10},
  8                {4,5,6,10},
  9                {7,8,9,10}
 10                        };
 11 int n=sizeof(a);
 12 
 13 
 14 int b=(sizeof(a)/sizeof(a[0]));
 15 
 16 
 17 for(int i=0;i<(sizeof(a)/sizeof(int))/4;i++){//外层循环是循环一维数组
 18     for(int j=0;j<=b;j++){                   //内层循环 循环一维数组里的元素
 19 printf(" %d",a[i][j]); //当i=0的时候j就挨个的去执行直到j<=b才结束 当j<=b的时候已经循环完整 
 20                        //个一位数组了
 21 }
 22 printf("\n");                                                               
 23 }
 24 

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头真的要秃啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值