c++数组

什么是数组:

数组就是有序数据的集合

如果数据有内在联系,有共同的属性,,就可以把数据看为一个整体,称为数组,,数组就是用一个统一的名字代表这批数据

数组元素:

数组的数据就是数组元素

访问数组中元素必要的两部分:

数组名和元素下标(所在数组中的位置)

****只能对数组元素赋值,不能用赋值语句对整个数组赋值*****

一维数组

定义一维数组:

一般形式:

类型名  数组名  【常量表达式】;

///****注意*****///:

常量表达式的值代表    元素的个数=数组的长度

例如int a[3];/代表长度为3,但是元素储存是从0开始,也就是说a[0],a[1],a[2],三个元素最后一个元素不是a[3]而是a【2】;

常量表达式是不能宝包括变量

引用一维数组:

一般形式:

数组名[下标];

初始化一维数组:

1.定义时全部赋予初始值

int a[3]={0,1,2};

2.定义是部分赋值

int a[3]={0,1};

///没有初始值系统默认初始值为=0

3.在全部赋予初始值时可以不指定长度

int a[]={0,1,2};

//系统会自动推导数组大小   但是如果初始值的个数和定义个数不同时则长度不能省略

二维数组

定义二维数组:

一般形式:

类型名  数组名  【常量表达式1】  【常量表达式2】;

*****注意****

在c++中二维数组是按行存放,先存放第一行,在存放第二行

引用二位数组

数组名[下标][下标];

二维数组初始化:

1.按行对二维数组全部元素初始化

int a[2][2]={{0,1,},{0,1}.{0,1}};

2.一个花括号直接按顺序赋值

int a[2][2]={0,1,,0,1.0,1};

3.在第一种方法对部分初始化

int a[2][2]={{0},{0}.{0}};

其余元素默认0

4.如果全部元数赋予初始值时,行长(一维)度可以不写,但是列数(二维)不能省略

int a[][2]={0,1,,0,1.0,1};

数组作为函数参数

1.当数组名作为函数的实参时,传递的是数组的起始地址,属于地址传递

此时实参和形参都用数组名,或则指针变量

2.数组元素作为实参时和变量作为实参一样

数组名做参数时注意

1.实参为数组名形参也得是数组名或则指针,不能为变量

int max(int ma[],int a);

int max(int *p,int a);

2.数组名代表数组首地址

3.数组名作为实参为地址传递,形参改变,实参改变

字符数组*****   

 ‘’单引号是引用单个字符

“”字符串常量

字符数组定义:

char 数组名【常量表达式】

初始化和数组相同区别在于引号

1.每个字符要用单引号引用

例如:

char a[]={'a','b','c'};

2.字符串常量初始化

char a[]={"abc"}

3.字符串未初始化部分为'\0';

c字符数组重点:结束标志'\0';

1.当遇到‘\0'时代表字符串到此结束,由它前面的字符组成有效字符串

2.在程序中往往字符串数组依靠'\0'位置来判断字符串数组是否结束,而不是根据数组长度来决定字符串的长度

3.字符数组并不要求最后一个字符必须是'\0'结尾,如果刚好字符数和数组长度一样就不存在'\0'

4.当我们用字符串常量进行初始化时。字符串常量的最后由系统加上'\0'所以导致真实长度变成字符串长度加1;

字符数组的输入输出

int str[10];

cin<<str;

cout<<str;

1.输出的字符不包括'\0'

2.当cout后面跟数组名时输出字符串,当跟的是数组元素名输出单个字符

3.如果数组长度大于实际字符串长度输出遇到'\0'结束

4.如果包括一个以上'\0'时第一个'\0'时就结束

5.cin输入字符串,字符串应该短于已经定义的数组长度,应保证小于数组长度,因为系统会补充'\0'也占有一个位置

c++提供的字符串操作函数:

头文件#include<string>

字符串拼接strcat(char[],const char[]);

1.将后一个拼接到前一个后面

2.const代表该数组调用时不被修改,

3.函数结束得到的是第一个字符数组的地址

字符串复制函数strcpy(char[],const char[]);

将第二个数组赋值给第一个数组

注意事项

1.第一个参数必须是数组名,第二个参数可以是数组名,也可以是字符串常量

strcpy(str1,str2);

strcpy(str1,"china");

2.也可以只复制前几位

strcpy(str1,str2,2);*****复制前两位

3.不能str1=str2;因为str1是数组名不能被赋值

字符串比较函数strcmp(const  char[],const char[]);

1.前者大返回正整数

2.相等返回0

3.小于后者返回负整数

字符串长度函数strlen(const  char[])

返回的是实际长度不包括'\0'在内

*******string类会在stl模板库详细讲解*****

c+对于字符串有两种处理方法

1.字符数组或则称为c-string2.string类定义字符串变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值