Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104609
  • 博文数量: 25
  • 博客积分: 514
  • 博客等级: 下士
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-07 01:22
个人简介

漂泊海外的游子

文章分类

全部博文(25)

文章存档

2015年(2)

2013年(1)

2012年(22)

分类: C/C++

2012-02-17 01:26:43

说到数组,它就是个存东西的东西,容器。不过有个要求,那就是数组里的东西的性质要一样(类型)。这是个比较单一的,死板的容器。

1. 数组赋值
怎么将元素放到数组里面去呢? 直接赋值就可以了。就像这样:int billy [5] = {1, 2, 3, 4, 5};
你也可以这样:int billy[]={1, 2, 3, 4, 5};
编译器自动匹配数组的大小。

2. 提取数组中的值
数组元素放在内存里,是通过索引值来提取元素的。直接上。
namearray[index];
就是说通过索引值来完成提取数组中的值。

有点注意,那就是索引值是从0开始计算的。

3. 多元数组
一维的数组实在作用有限,什么图像啊之类的数据就是二维,三维的。所以多元数组还是很有用的。
声明
type namearray[][];    二维的
你想几维在后面填上就可以。

提取数组的值,和一维的方式一样。

4. 数组作为参数
这个有意思的地方,你好不容易做好了数组,你不能不用吧,没用你建个数组干什么?对吧。怎么用?将数组作为参数传递给函数,这样就可以对数组进行加工了。

函数要用数组,那参数就有点不一样了,怎么写呢?
type namearray[]
这就是参数。
给个例子吧
  1. //arrays as parameters
  2. #include<iostream>
  3. using namespace std;

  4. void printarray (int arg[], int length) {         //看到没有?是int arg[]
  5.  
  6. for (int n=0;n<length;++n)
  7.  cout<<arg[n]<<" ";
  8.  cout<<"\n";
  9.   
  10. }

  11. int main () {

  12.   int array[] = {5, 10, 15};
  13.   printarray (array,3);
  14.    
  15.   return 0;
  16. }
提醒一下,一定要记住,类型要一致,数组类型,函数参数的类型是要一致的,不然就出错了。
如果要不一致那也不是不可以,用类,模板呗。这是后话。

5. 字符串
这个跟数组是有点类似的。
以前说过string类,这个比字符串强多了。但字符串也是有作用的嘛。

声明的方式和数组一样,不过类型就是char了。
char name[];

提示:字符串里的最后是个\0,叫做null字符,做为字符串结尾的信号吧。

赋值和数组有点区别,就是,字符都要上单引号。像这样
char word[] = {'H', 'e', 'l', 'l', 'o', '\0'};

还有一种,就是字符串用一个双引号包起来就可以了。
char word [] = "Hello";

其实数组就是个常量指针,指向内存模块的。数组的内容是不允许修改的。所以下面表达就有问题了。
假设mychar是个char []的变量
mychar = "Hello";
mychar [] = "Hello";
mychar = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};
都是无效的。

数组就说到这。
下次见。



阅读(1204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~