(1)可以给每个数组元素单独赋值: cj[0]=50; //可以直接赋以一具体的数据 cj[1]=cj[0]; //可以把其它数组元素的值赋值给该数组元素 (2)可以对整个数组赋值 如: 或者 float money [3]={12.5,34.6,4.8}; float money [3]; money [3]={12.5,34.6,4.8}; 注意:这种赋值方法在使用时必须确保{}中给出的数据个数必须要小于或者等于数组的实际大小,否则将会出现错误。 在初始化时需要注意: (1)对数组赋值时,不能用一个数组对另外一个数组赋值。 如: int merry[3]=mike[3]; (2)在声明数组的时候需要说明数组的大小,除非你在同一个语句中对它进行初始化 。 如:int merry[ ]={1,2,3}; //说明该数组有三个元素 这种情况是错误的: int merry[ ]; 4、一维数组的应用 (1)一维字符数组 如果数组存放的数据属于文本,我们就将这样的数组称为字符数组。 ①声明 一维字符数组的声明与一维整型数组的声明类似,只是将表示类型的关键字换成char,格式如下 char 数组名[数组大小]; 例如: char array[10]; 代表在内存中申请10个连续的存储单元,这些存储单元用来存放字符。 ②赋值 如:定义一个字符数组,需要存储的数据为:abcd
char name[4]; name[0]= ‘a’; name[1]= ‘b’; name[2]= ‘c’; 16
name[3]= ‘d’; 也可以这样写: char name[4]={‘a’, ‘b’, ‘c’, ‘d’}; (2)字符串 字符串是一个以NULL(“\\0”)结尾的字符数组,换句话讲,如果数组以NULL结尾,那么该数组就称为字符串,简称为串。在实际显示中,NULL是不可显示字符,所以不在屏幕上显示,它只表示串的结束。 ①字符串的声明同字符数组,只是在赋值上有所区别。 如:存储字符串mike char name[5]=”mike”; //字符串mike实际长度为5 或 char name[ ]=”mike”; //计算机根据实际值计算出数组长度 或 char name[5]; //先定义数组,在逐个赋值 name[0]= ‘m’; name[1]= ‘i’; name[2]= ‘k’; name[3]= ‘e’; name[4]= ‘\\0’; ②字符串的操作 [1].字符串的输入和输出 字符串的输入和输出与一般变量的输入与输出类似,用cin和cout实现。 [2]. 字符串的常用函数 strlen()—— 求字符串的长度 该函数将返回字符串中实际存储的字符个数,’\\0’除外,假设一字符串为“miker”,串名为name,则语句 cout< 1、二维数组的定义和初始化 ①定义 一维数组在空间上,我们可以将它看作是一行或者一列,是一维的、线性的;而二维数组是包含多行多列的一个矩阵,是二维的。 ② 声明:声明一个二维数组必须指出该数组包含的行数和列数。格式如下: <数据类型> 数组名[行数][列数]; ③赋值 我们可以在声明二维数组的同时给予初始化,也可以在以后进行初始化,但有一点需要注意,那就是二维数组同一维数组一样,在声明的同时需要说明大小,除非你在同一个语句中对它进行初始化,这时也须指定列数。 由于二维数组涉及多行多列,因此在对其进行赋值时和一维数组有所不同。 例:int num[3][2]={ {15,32},{10,21},{90,7} }; 在这个例子中,{}中的数据位于同一行中,由于该数组有3行,所以每行数据都被{}括起来,而所有的行都被包括在最外层的{}中。 也可以写成: int num[ ][2]={ {15,32},{10,21},{90,7} }; 这时省略了行数,但列数不能省略。下面这种写法就是错的: int num[ ][ ]={ {15,32},{10,21},{90,7} }; //错误 2、二维数组的应用 作 业 教学反馈 18 四川警安职业学院标准教案纸 课程名称 授课时间 教学目标 第四章 数组和指针 第6讲 指针 09.3.30 地点 六多媒体 任课教师 授课班级 07计信 人数 53人 掌握指针的定义和运算;掌握指针与一维数组、字符串的关系;掌握动态内存管理的方法。 指针的运算;指针与一维数组和字符串之间的关系。 指针的运算。指针与一维数组和字符串之间的关系。 2节 教学方法 讲授法、演示法、教学手段 多媒体教学 实践操作法 教学重点 教学难点 教学时数 教学内容: 一、指针的定义和初始化 1. 定义 什么是指针?举例来讲,如果将计算机的各个内存单元比作是一个一个的小抽屉的话,那么指针就是开启这些小抽屉的钥匙,换句话讲,指针就是一个指示器,它告诉程序可以在在哪块内存中找到数据。实际上,指针也是一个变量,指针中存放的是所指向的那块内存单元的地址。 指针的定义方法如下: 指针类型 *指针名; 如:int *pname; 这个声明语句起到的作用是:定义一个指针,该指针的名字为pname,它指向一个存放整型数据的存储地址。需要注意的是*并不是指针名的一部分,它的作用在于说明所定义的是一个指针变量,与我们前面所讲的基本数据类型变量的定义相区别。 又如:char *psize; float *ptr; 分别表示定义一个字符型指针变量和单精度指针变量。 2. 初始化 对指针进行初始化其实就是将某块内存单元的地址赋值给它,但是怎么 19 能够知道内存单元的地址呢?&这个符号能够帮助我们取得变量的地址。 如:int tr; int *ptr=&tr; 也可以这样写: int tr; *ptr; ptr=&tr; 该语句定义了一个指针ptr,它指向一个整型变量,该整型变量为tr。在指针变量ptr中存放的是变量tr的地址。而*ptr指向的就是变量tr中的内容。 二、指针的类型 指针是一个变量,因此指针也有相关的类型。但是和普通变量不同的是,不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的值上,指针的类型指的是指针所指向的数据的类型,所以指针的类型必须和所指向的变量的类型相匹配。 三、指针的运算 指针也可以进行加减运算,但是和普通的整数加减运算并不相同。它允许以下这些运算: 1. 赋值运算 我们可以将一个变量的地址赋值给指针,如: int tr1; int *ptr=&tr1; //注意指针的类型在此处应该为整型 指针之间也可以进行相互赋值,如: int tr1; int *ptr1,*ptr2; ptr1=&tr1; ptr2=ptr1; 2. 算术运算 由于指针存储的是内存地址,所以指针的算术运算针对的都是整数。最常见的算术运算是加减运算,可以对指针加1或者减1。由于指针是一个指示器,所以指针的加减运算并不仅仅是整数的加减,而在于指针所存储的内存地址变 20