欢迎来到天天文库
浏览记录
ID:39224016
大小:2.21 MB
页数:75页
时间:2019-06-28
《复杂数据及运算——指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章复杂数据及运算清华大学郑莉数组复习—问题1)什么情况下使用数组?2)数组里的元素是顺序存放的吗?3)一维数组如何定义?4)一维数组的初始化5)一维数组元素怎么使用6)一维数组如何输入输出7)二维数组的使用4.2指针为了操作地址!!!一点忠告!C/C++可以直接操作内存地址。指针就是为了地址操作而存在的。指针是复杂又容易出错的。在不是必须使用指针的场合,不推荐用指针。我们学习指针不是为了到处用指针,而是在需要用的时候使用。我们自己写程序的时候,在确保程序实现功能的前提下,代码是越简单越好,而不是技巧越
2、多,越复杂越好!本节的学习本节除了动态内存分配,其余所有程序例题,其实都可以不需要指针。只所以用指针是为了帮助我们理解指针的用法。本节的学习,一定要了解一点内存的知识。内存单元的地址C++各种基本数据类型的长度(字节)4.2.1数据在内存中的地址内存空间的访问方式通过变量名访问通过地址访问6程序中:inti;内存中每个字节有一个编号-----地址…...…...20012002内存0i编译或函数调用时为其分配内存单元变量是对程序中数据存储空间的抽象变量与地址2000如何获得变量的地址地址运算取地址运算符:
3、&数组的起始地址数组名字既是数组的起始地址,因此数组名是地址常量。8例4-5:观察变量在内存中的地址#includeusingnamespacestd;intmain(){intintVal=1;doubledVal=2.0;intintarray[3]={0,1,2};cout<<&intVal<<':'<4、:'<5、]是数组的第一个元素,该元素的地址是&intArray[0]。所以intArray,&intArray[0],所存放的地址是一样的。&intArray[0]一旦定义了一个数组,数组名存放的就是数组的起始地址,也就是一个地址类型的数据。在生存期内,整个数组在内存中的所占用的存储空间是不变的,地址是不变的,所以数组名是一个地址类型的常量。对一维数组的再探讨一维数组有个关键问题:下标不可以越界。但是如果越界编译器并不能检查出错误。从地址的角度来考虑这个问题。102intArray&intArray[0]&int6、Array[1]&intArray[2]&intArray[3]超出数组范围可能对其他数据产生破坏例4-6:观察一维数组在内存中的存储#include#includeusingnamespacestd;constintsize=5;intmain(){intarray[size];inti;for(i=0;i7、or(i=0;i8、增加语句:array[5]=100;在编译时不会出现错误信息;运行后得到的错误信息,是操作系统发出的。例4-7:观察多维数组在内存中的存储#include#includeusingnamespacestd;constintnrow=3;constintncol=2;intmain(){intarray[nrow][ncol];inti;for(i=0;i
4、:'<5、]是数组的第一个元素,该元素的地址是&intArray[0]。所以intArray,&intArray[0],所存放的地址是一样的。&intArray[0]一旦定义了一个数组,数组名存放的就是数组的起始地址,也就是一个地址类型的数据。在生存期内,整个数组在内存中的所占用的存储空间是不变的,地址是不变的,所以数组名是一个地址类型的常量。对一维数组的再探讨一维数组有个关键问题:下标不可以越界。但是如果越界编译器并不能检查出错误。从地址的角度来考虑这个问题。102intArray&intArray[0]&int6、Array[1]&intArray[2]&intArray[3]超出数组范围可能对其他数据产生破坏例4-6:观察一维数组在内存中的存储#include#includeusingnamespacestd;constintsize=5;intmain(){intarray[size];inti;for(i=0;i7、or(i=0;i8、增加语句:array[5]=100;在编译时不会出现错误信息;运行后得到的错误信息,是操作系统发出的。例4-7:观察多维数组在内存中的存储#include#includeusingnamespacestd;constintnrow=3;constintncol=2;intmain(){intarray[nrow][ncol];inti;for(i=0;i
5、]是数组的第一个元素,该元素的地址是&intArray[0]。所以intArray,&intArray[0],所存放的地址是一样的。&intArray[0]一旦定义了一个数组,数组名存放的就是数组的起始地址,也就是一个地址类型的数据。在生存期内,整个数组在内存中的所占用的存储空间是不变的,地址是不变的,所以数组名是一个地址类型的常量。对一维数组的再探讨一维数组有个关键问题:下标不可以越界。但是如果越界编译器并不能检查出错误。从地址的角度来考虑这个问题。102intArray&intArray[0]&int
6、Array[1]&intArray[2]&intArray[3]超出数组范围可能对其他数据产生破坏例4-6:观察一维数组在内存中的存储#include#includeusingnamespacestd;constintsize=5;intmain(){intarray[size];inti;for(i=0;i7、or(i=0;i8、增加语句:array[5]=100;在编译时不会出现错误信息;运行后得到的错误信息,是操作系统发出的。例4-7:观察多维数组在内存中的存储#include#includeusingnamespacestd;constintnrow=3;constintncol=2;intmain(){intarray[nrow][ncol];inti;for(i=0;i
7、or(i=0;i8、增加语句:array[5]=100;在编译时不会出现错误信息;运行后得到的错误信息,是操作系统发出的。例4-7:观察多维数组在内存中的存储#include#includeusingnamespacestd;constintnrow=3;constintncol=2;intmain(){intarray[nrow][ncol];inti;for(i=0;i
8、增加语句:array[5]=100;在编译时不会出现错误信息;运行后得到的错误信息,是操作系统发出的。例4-7:观察多维数组在内存中的存储#include#includeusingnamespacestd;constintnrow=3;constintncol=2;intmain(){intarray[nrow][ncol];inti;for(i=0;i
此文档下载收益归作者所有