程序设计基础——数组

数组是保存一组同类元素的数据类型(同类、有序)

储存类型  数据类型  数组名[整型]

注意:①数组大小不能作为变量,一旦定义不可改变大小;②数组大小为0无意义;③数组名表示数组的首地址不可改变,例如:b=a✕   b[i]=a[i]

#define LEN1 10
const int LEN2=5;//定义1
double doubleArray1[LEN1],doubleArray2[LeN2];

constexpr int LEN2=5;//定义2

int LEN1=10,LEN2=5;
double doubleArray1[LEN1],doubleArray[LEN2];//定义3

定义3是非法的,因为LEN1和LEN2是变量,在某些编译器中,上述句也可能正确通过编译,但这只是编译器自己做的优化,不具备通用性。

1.一维数组数组名[下标]

例如:a[b+1]  b=4           a[a[0]+1]  a[0]=1

初始化:单一数组赋值元素赋值、聚合方式赋值  int a[]={0,1,2}或int a[3]={0,1,2}

初始化表的长度短于要被初始化数组元素数目,那么剩余元素初始化为0。

内存映像:空间大小等于元素个数乘以每个元素所占空间的大小,C++并不保存每个下标变量的地址,只保存整个数组的起始地址

拓展:C++11中,范围for不仅可以遍历一组列出的数据,还可以遍历数组所有元素

for(i=0;i=10;i++)
    cout<<a[i]<<'\t';//方式1

for(int x:a)cout<<x<<'\t';//方式2

for(auto x:a)cout<<x<<'\t';//方式3

2.查找:顺序查找、二分查找

3、排序

选择排序,冒泡排序(比较相邻元素)

4.二维数组

聚合赋值:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}={{1,2,3,4}{5,6,7,8}{9,10,11,12}}

部分赋值:int a[3][4]={1,2,3,4,5}   int a[3][4]={{1,2}{3,4}{5}}

对全部元素都赋初值,定义数组时的第一维长度可省,部分元素定义时也可省略第一组长度,但应以分组的形式。

5.字符串

由一系列字符组成的一个数据,双引号

字符串变量:用字符类型的数组来表示

数组名是数组的起始地址,以'\0'表示字符串的结束

例:char ch[ ]={'H','e','l','l','o'}          char ch[6]={'H','e','l','l','o'} 

空字符串不包含任何字符,占用空间一个字节

cin.getline(str)  可含空格

cin.get/getline(字符数组,长度,结束字符)get结束字符留在输入流中,getline将结束字符从输入流中删除。

库cstring中包含字符串处理函数

strlen(str)  strcpy(a,b)  strcat(a,b) 连接  strcmp(a,b)  strlwr(str) 大转小  strupr(str) 小转大  strcpy(str1,str2,n)  strncmp(str1,str2,n)  strncat(str1,str2,n)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值