·数组初识·

(一)、一维数组:

定义:类型说明符 数组名[整型常量表达式];

类型说明符:可以是 int (整型)、char(字符型)、float(浮点型) 等基本数据类型。

数组名:(1)使用标识符表示。(2)数组名可作为数组第一个元素的地址,在函数实参传入形参的过程中,只是传入第一个元素的地址,而不是传入一个数组。

整型常量表达式:表示数组大小或数组里面的元素个数。整型常量表达式中不允许包含变量

例如:int arr[20]; char arr[10]; float arr[];

定义了一个大小为20、数组名为arr的整型数组,数组中每个数组元素都是整型变量。

定义了一个大小为10、数组名为arr的字符型数组,数组中每个数组元素都是字符型变量。

定义了一个大小未定、数组名为arr的浮点型数组,数组中每个数组元素都是浮点型变量。

初始化:完全初始化、不完全初始化。

例如:(1)  int arr[20]={1,2,3,4,5,6,7,8,9,0};  (2)  char arr[4]="abc";  (3)  char arr[3]={'a','b','c'};

其中:(1)属于不完全初始化,一个整型变量占用4个字节,共20*4=80个字节,占40个字节(2)和(3)属于完全初始化,一个字符变量占用1个字节,“abc”字符串占4个字节,字符占3个字节。

另:strlen函数:求的是字符串长度,只识别‘\0’之前的字符串个数,不能求字符的个数。

       sizeof函数:求的是字符串和字符所占空间的大小,单位是字节。对于字符串,是把‘‘\0’算进去了的。而字符却没有。

#include<stdio.h>
int main()
{
  int arr[]="abc";
  int arr2[]={'a','b','c'};
  printf("%d",sizeof(arr));
  printf("%d",sizeof(arr2));
  printf("%d",strlen(arr));
  printf("%d",strlen(arr2));
  return 0;
}
//依次输出为:4 3 3 随机数。

下标变量的引用:

形式:  数组名[下标]  

      1、下标可以是常量、变量、表达式,但必须是整型数。且数组下标从0开始,则下标取值应从【0~数组长度-1】。

      2、数组元素个数:sz=sizeof(arr)/sizeof(arr[0])来求得。

      3、[ ]:下标引用操作符。

(二)、二维数组:

定义:类型说明符 数组名[整型常量表达式][整型常量表达式];

例如:int  arr[3][5];  定义了一个三行五列的二维数组。

初始化:完全初始化、不完全初始化。

例如:(1)  int  arr[3][4]={123412341234};  (2)  int arr2[][3]="abcd";  (3)   int arr3[3][4]={{1234}{5}{6}};

(1)属于完全初始化。(2)(3)属于不完全初始化。

注:确定数组大小的时候不得省略列。

下标变量的引用:

//依次打印二维数组的元素在屏幕上//
#include<stdio.h>
int main()
{
  int arr[3][4]={{123}{4}{5}};
  for(int i=0;i<3;i++)
  {
      for(int j=0;j<4;j++)
      {
        printf("%d",arr[i][j]);
      }
       printf("\n");
  }
  return 0; 
}

(三)、冒泡排序:

例如:给定一个无序数组,将其从小到大进行排序。如:arr[]={546324};

#include<stdio.h>
void bubble_sort(int arr[],int sz)
{
 for(int i=0;i<sz-1;i++)//i表示趟数,共6个元素,需要循环6-1=5趟才能交换完成
    {
      for(int j=0;j<sz-1-i;j++)//j表示第i趟的所需的比较次数,第i趟最多需要6-i-1次能比较完成。
      {
        if(arr[j]>arr[j+1])
          {
            int temp=0;
            temp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=temp;
          }
      }
    }
}
int main()
{
  int arr[]={5,4,6,3,2,4};
  int sz=sizeof(arr)/sizeof(arr[0]);
  bubble_sort(arr,sz);
  for(int i=0;i<sz;i++)
  {
    printf("%d",arr[i]);//打印完成交换后的数
  }
  return 0;
}

(四)、数组名绝大部分表示数组首元素地址,但除了两种情况以外:

1、sizeof后面加个数组名。如:sizeof(arr)则表示求整个数组的大小-单位是字节。

2、&数组名,表示求整个数组的地址。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值