《程序设计》cs.u20119 数组元素 冷数组元素的使用是通过数组名及元素的序 号来指定,如 intarray2。当数组的大小为 n时,元素的序号为0-n-1 冷元素的序号称为下标。程序中,下标可为 整数、整型变量或结果为整型的任意表达 式。正是这一特性,使得数组的应用非常 灵活。 程序设计-6
《程序设计》 cs.sjtu 2011.9 程序设计 - 6 数组元素 ❖ 数组元素的使用是通过数组名及元素的序 号来指定,如intarray[2]。当数组的大小为 n时,元素的序号为0 – n-1。 ❖ 元素的序号称为下标。程序中,下标可为 整数、整型变量或结果为整型的任意表达 式。正是这一特性,使得数组的应用非常 灵活
《程序设计》cs.u20119 数组在内存中 定义数组就是定义了一块连续的空间, 空间的大小等于元素数每个元素所占 的空间大小。 数组元素按序存放在这块空间中 程序设计-7
《程序设计》 cs.sjtu 2011.9 程序设计 - 7 数组在内存中 ❖ 定义数组就是定义了一块连续的空间, 空间的大小等于元素数*每个元素所占 的空间大小。 ❖ 数组元素按序存放在这块空间中
《程序设计》cs.u20119 为数组分配空间 冷如: int intarray 5;占用了20个字节,因为每 个整型数占四个字节。如给 interray3赋值为 3,如果这块空间的起始地址为100,那么在 内存中的情况是 随机值随机值随机值3 随机值 100 103104 107108 111112 115116 冷当你引用变量 intarraylidx时,系统计算它的 地址100+idx*4,对该地址的内容进行操作。 程序设计-8
《程序设计》 cs.sjtu 2011.9 程序设计 - 8 为数组分配空间 ❖ 如: int intarray[5];占用了20个字节,因为每 个整型数占四个字节。如给intarray[3]赋值为 3,如果这块空间的起始地址为100,那么在 内存中的情况是: ❖ 当你引用变量intarray[idx]时,系统计算它的 地址100+idx*4,对该地址的内容进行操作。 随机值 随机值 随机值 3 随机值 100 103 104 107 108 111 112 115 116 119
《程序设计》cs.u20119 数组下标超界问题 冷C/C+语言不检查数组下标的超界。如定义数 组 int intarray10;合法的下标范围是0-9, 但如果你引用 lintarrayl10,系统不会报错。 如数组 interray的起始地址是1000,当引用 intarray{10时,系统对1040号内存进行操作 而1040可能是另一个变量的地址 解决方法:由程序员自己控制。在对下标变 量进行操作前,先检查下标的合法性。 程序设计-9
《程序设计》 cs.sjtu 2011.9 程序设计 - 9 数组下标超界问题 ❖ C/C++语言不检查数组下标的超界。如定义数 组 int intarray[10]; 合法的下标范围是0 – 9, 但如果你引用intarray[10],系统不会报错。 如数组intarray 的起始地址是1000,当引用 intarray[10]时,系统对1040号内存进行操作。 而1040可能是另一个变量的地址 ❖ 解决方法:由程序员自己控制。在对下标变 量进行操作前,先检查下标的合法性
数组的操作 《程序设计》cs.u20119 冷数组的操作主要是数组元素的操作 冷不能直接对数组名进行赋值。如: intarray=30是 错的。事实上,数组名中存放的是该数组的起始 地址。 冷eg.数组的输入输出 int maino Rint intarrayl1o, idx; for(idx=0; idx <=9; ++idx) cin > intarraylidx cout < endl: for(idx=0; idx<=9; ++idx) cout < intarraylidx 程序设计10
《程序设计》 cs.sjtu 2011.9 程序设计 - 10 数组的操作 ❖ 数组的操作主要是数组元素的操作。 ❖ 不能直接对数组名进行赋值。如:intarray=30 是 错的。事实上,数组名中存放的是该数组的起始 地址。 ❖ eg. 数组的输入输出 int main() {int intarray[10], idx; for (idx = 0; idx <= 9; ++idx) cin >> intarray[idx] ; cout << endl; for ( idx = 0; idx <= 9; ++idx) cout << intarray[idx]; }