您的位置:首页 > 编程语言 > C语言/C++

C++一些基本概念总结【面向过程篇】——数组

2017-03-29 09:06 267 查看
数组的声明

声明一维数组:<类型名><数组名>[<下标表达式>]={<初值表>},如char a[5],int b[ ]={1,2,3}

声明多维数组:<类型名><数组名>[<下标表达式1>][<下标表达式2>]...[<下标表达式n>]={<初值表>},如float c[2][3]

注意:

(1)一维下标表达式表示数组中元素的个数,可以省略,但必须赋初值,这样系统会根据所赋初值的个数来确定数组的大小。

(2)不能用变量来描述元素的个数,但可以用const。

(3)二维数组下表表达式不能省略,第一个表示行数,第二个表示列数。

数组的引用:通过下标来访问,如a[2],b[2][3]

数组的赋值:

(1)初始化的时候就赋值

如:int c[3]={1,2},后面不足的部分系统自动补0(对于数值数组)或者补'\0'(对于字符数组),char a[3]={'a','b','c'}

(2)声明数组之后,通过赋值表达式赋值

(3)通过输入语句赋值

如:int a[3],cin>>a[0]

(4)通过循环语句赋值

如:for(int i=0;i<=9;i++) a[i]=i;

对于没有赋值的元素,不能调用

字符串

字符串函数包含在<string.h>

传统字符串:char ch1[ ]={"hello"},长度为6,包括5个字符和一个'\0'

字符数组:char ch2[ ]={'h','e','l','l','o'},长度为5

几个字符串函数

(1)strcpy(char des[ ],const char src[ ])函数:将src拷贝到des

(2)strcat(char target[ ],const char src[ ])函数:将src接到target后面

(3)strlen(const char string[ ])函数:计算字符串的实际长度,如char a[ ]={"abc"},int num=strlen(a)  //3

(4)strlwr():将字符串中大写转成小写

(5)strupr():将字符串中小写转成大写

(6)strcmp():字符串大小比较(从左至右按照ASCII比较)

               65~90为26个大写英文字母A-Z,97~122号为26个小写英文字母a-z

(7)sizeof和strlen比较:

             (1)sizeof是运算符,编译时就可以算出来;strlen是函数,要到运行时才能算出来。

             (2)sizeof计算的是在栈中分配的内存大小

             (3)sizeof可以处理字符串和字符数组,运算结果是它们所占用字节数;strlen只能用于计算字符串的实际个数或长度

如char ch1[]={'a','b','c'},// 没有指定长度的字符数组 

    char ch11[5]={'a','b','c'},// 指定了长度的字符数组    

    char ch2[ ]={'abc"} //字符串

sizeof(ch1)/sizeof(char)      //3

sizeof(ch11)/sizeof(char)    //5

sizeof(ch2)/sizeof(char) //4,因为字符串包含结束符'\0'

strlen(ch2)  //3

数组作为函数参数

(1)数组元素作为函数参数:值传送

(2)数组名作为函数参数:地址传送。因为数组名就是该数组的首地址。这样行参数组就和是参数组共占用同一段内存单元,形参发生变化,实参也变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: