C++零基础入门------------数组

目录

1.概述

2.一维数组 

1.一维数组定义方式

1.定义方式1

2. 定义方式2

 2.一维数组数组名

1.可以统计整个数组在内存中的长度

 2.可以获取数组在内存中的首地址

3.冒泡排序 

3.二维数组 

1.二维数组定义方式

1.定义方式1

2.定义方式2

3.定义方式3

4.定义方式4

2.二维数组数组名


1.概述

所谓数组,就是一个集合,里面存放了相同类型的数据元素

特点1:数组中的每个数据元素都是相同的数据类型

特点2:数组是由连续的内存位置组成的

2.一维数组 

1.一维数组定义方式

三种方式:

  1. 数据类型   数组名[数组长度];
  2. 数据类型   数组名[数组长度]={值1,值2...};
  3. 数据类型   数组名[  ]={值1,值2...};

1.定义方式1

//数据类型   数组名[数组长度];
int a[10];
//利用下标赋值
a[1]=100;
a[2]=90;
....

2. 定义方式2

//数据类型   数组名[数组长度]={值1,值2...};
int a[5]={10,20,30,40,50};
cout<<a[0]<<endl;
cout<<a[1]<<endl;
cout<<a[2]<<endl;
cout<<a[3]<<endl;
cout<<a[4]<<endl;
//数据类型   数组名[数组长度]={值1,值2...};
int a[5]={10,20,30,40,50};
//利用循环 
for(int i=0;i<5;i++)
{
   cout<<a[i]<<endl;
}
//数据类型   数组名[数组长度]={值1,值2...};
//如果在初始化数据时候,没有全部填写完,会用0来填补剩余数据
int a[5]={10,20,30};
cout<<a[0]<<endl;
cout<<a[1]<<endl;
cout<<a[2]<<endl;
cout<<a[3]<<endl;
cout<<a[4]<<endl;

 2.一维数组数组名

一维数组名称的用途:

  1. 可以统计整个数组在内存中的长度      sizeof(a)
  2. 可以获取数组在内存中的首地址         cout<<a<<endl;

1.可以统计整个数组在内存中的长度

int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<"整个数组占用内存空间为;"<<sizeof(a)<<endl;
cout<<"每个元素占用内存空间为:"<<sizeof(a[0])<<endl;
cout<<"数组中元素个数为:"<<sizeof(a)/sizeof(a[0])<<endl;

 2.可以获取数组在内存中的首地址

int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<"数组首地址为:"<<(int)a<<endl;
cout<<"数组中第一个元素地址为:"<<(int)a[0]<<endl;
cout<<"数组中第二个元素地址为:"<<(int)a[1]<<endl;

 注意:

数组名是常量,不可以进行赋值操作

a=100;是不允许的

3.冒泡排序 

作用:最常用的排序算法,对数组内元素进行排序

  1. 比较相邻的元素,如果第一个比第二个大,就交换他们两个
  2. 对每一对相邻元素同样的工作,执行完毕后,找到第一个最大值
  3. 重复以上的步骤,每次比较次数-1,查到不需要比较

排序总轮数=元素个数-1

每轮对比次数=元素个数-当前排序轮数-1

//利用冒泡排序实现升序序列
int arr[9]={6,8,2,5,3,9,4,1,7};
cout<<"排序前:"<<endl;
for(int i=0;i<9;i++)
{
   cout<<arr[i]<<" ";
}
cout<<endl;
//开始冒泡排序
//排序总轮数=元素个数-1
for(int i=0;i<9-1;i++)
{
   //内层循环对比  次数=元素个数-当前轮数-1
   for(int j=0;j<9-i-1;j++)
   {
       //如果第一个数字,比第二个数字大,交换两个数字
       if(arr[j]>arr[j+1])
       {
         int temp=arr[j];
         arr[j]=arr[j+1];
         arr[j+1]=temp;
       }
   }
}
//排序后结果
cout<<"排序后:"<<endl;
for(int i=0;i<9;i++)
{
   cout<<arr[i]<<" ";
}
cout<<endl;
      

3.二维数组 

1.二维数组定义方式

二维数组定义的四种方式 

  1. 数据类型    数据名[行数][列数];
  2. 数据类型    数据名[行数][列数]={{数据1,数据2},{数据3,数据4}};
  3. 数据类型    数据名[行数][列数]={数据1,数据2,数据3,数据4};
  4. 数据类型    数据名[       ][列数]={数据1,数据2,数据3,数据4};

建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性

1.定义方式1

//数据类型    数据名[行数][列数];
int arr[2][3];
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1][0]=4;
arr[1][1]=5;
arr[1][2]=6;

cout<<arr[0][0]=1<<endl;
cout<<arr[0][1]=2<<endl;
cout<<arr[0][2]=3<<endl;
cout<<arr[1][0]=4<<endl;
cout<<arr[1][1]=5<<endl;
cout<<arr[1][2]=6<<endl;
//数据类型    数据名[行数][列数];
int arr[2][3];
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1][0]=4;
arr[1][1]=5;
arr[1][2]=6;

//利用循环,外层循环打印行数,内层循环打印列数
for (int i=0;i<2;i++)
{
    for(int j;j<3;j++)
    {
      cout<<arr[i][j]<<" ";
    }
    cout<<endl;
}

2.定义方式2

//数据类型    数据名[行数][列数]={{数据1,数据2},{数据3,数据4}};
int arr2[2][3]={{1,2,3},{4,5,6}};
for (int i=0;i<2;i++)
{
    for(int j;j<3;j++)
    {
      cout<<arr[i][j]<<" ";
    }
    cout<<endl;
}

3.定义方式3

//数据类型    数据名[行数][列数]={数据1,数据2,数据3,数据4};
int arr4[2][3]={1,2,3,4,5,6};

4.定义方式4

//数据类型    数据名[    ][列数]={数据1,数据2,数据3,数据4};
int arr4[ ][3]={1,2,3,4,5,6};

2.二维数组数组名

类比于一维数组 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值