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

c++数组的学习

2016-05-17 20:50 465 查看
简单的数组的定义和初始化就不说了,比较简单,把自己比较容易虎的地方记下来,供以后复习(参考的谭浩强的C++程序设计)

1. 数组定义时,数组的大小应该是一个常量,而且数组的引用只能引用其中某个元素,不能引用整个数组。

2.不能对数组进行整体赋值

int a={1,2};

int b=;

b=a; //这是错误的,不能对数组进行整体赋值

3.数组名作为函数的参数:

数组名只作为数组首元素的地址,并不代表数组中全部元素,所以将数组作为参数传递给函数,是将实参数组的首元素的地址传给形参,并不是把首元素的值传给函数

(变量作为函数参数,只能将实参变量的值传给形参)

需要注意的是形参数组并不真正分配存储单元,只是用array[ ]的形式表示参数是一个数组,所以array[ ]方括号内的数值没有实际作用,所以形参是一维数组时,大小可以写,也可以不写

二维数组作为函数参数时可以不指定第一维的大小,但是必须指定第二维的大小,且与实参的第二维的数目相同(二维数组也可以看作若干一维数组)

4.字符数组

只能对字符数组的元素赋值,不能对整个数组赋值,在声明的时候初始化可以

char c[5]={'a','b','c','d','e'}; //正确

char b[5]="Chin"; //正确,因为C++规定字符串结束的标志是‘\0’,对字符串常量,系统自动加[b]‘\0’作为结束符

[/b]

char c[5];

c={'a','b','c','d','e'}; //错误,可以理解成字符数组的名字是常量,不能被赋值,不能做左值



char b[5]="China"; //错的,字符串实际上大小是6

char a[5];

cin>>a; //注意输入的字符数要小于数组的大小

要用一个字符串赋值给一个字符数组,可以用strcpy()函数

比较字符串的大小,要用strcmp()函数

strlen是测试字符串的实际长度,不包括字符‘\0’

5. 字符串处理

string不是基本数据类型,可以直接进行赋值,关系运算符操作等,但是字符数组不能,要用strcat,strcmp等函数

一维字符数组智能存放一个字符串,而字符串数组可以包含很多个字符串,而且每个字符串元素只包含字符串本身不包含'\0'

看书上说sizeof(string)是4,但是在自己电脑上是32,看了这个博客知道了,不同的库对string的实现是不同的,也就是string大小也是不同的

链接如下

sizeof和sizeof(string)的问题 - wanghetao - 博客园 http://www.cnblogs.com/wanghetao/archive/2012/04/04/2431760.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: