06 第六章 复合数据类型.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete 按引用调用的参数传递方式 将函数作为参数 将数组作为参数 §6.1 变量的地址 变量在内存中占用的存储空间的首地址称为变量的地址 例:int x=0x1234; 则 x 的地址为2000H 变量x以两种方式被使用 左值:变量的地址部分 右值:变量的值部分 例:x = x + 1 左值 右值 如果一表达式的求值结果被指派了一个变量,则该表达式可做左值,否则只能做右值 例:(1) (ij)?i:j 做左值: (ij)?i:j = 10 ; 做右值:k = (ij)?i:j ; (2) i + j 只能做右值:k = i + j ; (i + j) = 1; 根据变量的使用属性,变量分: 值变量:在其存储空间中存放的是该变量的值,按变量名存取变量值; 地址变量:在其存储空间中存放的是地址,使用变量名时操作的是变量的地址; 指针类型的变量是最常用的地址变量 §6.2 指针类型与引用类型 一、指针的声明 一般形式: 基类型 *指针变量名; 基类型:是某种数据类型,指定指针变量所指向的对象的数据类型 *:指针定义符 例:int *p; ?int* p;?int * p; 一个指针占用的存储空间的大小取决于机器的内存寻址长度 例: int age = 30; int* age_ptr; 二、指针的使用 两个相关的运算符 取地址运算符:取操作数的存储空间地址 * 指针运算符:用于指针变量,表示取出指针所指向的存储空间中保存的值 例: int age = 30; int* age_ptr; age_ptr = age ; *age_ptr = 50 ; age_ptr ? age *age_ptr ? age *age_ptr = 50 ? age = 50; age++; ? (*age_ptr)++; ? *age_ptr++; ? *(age_ptr++); age: 30-31 ? *age_ptr; 地址加1 age_ptr=age_ptr+1; 使一指针指向某一变量时,指针的基类型必需与此变量的数据类型一致 int age = 30; int* age_ptr = age; float salary = 725.50; float* salary_ptr = salary; 那么以下赋值运算都是非法的: age_ptr = salary; // 出错,不能将(float*)类型赋值给(int*)类型 age_ptr = salary_ptr;// 出错,不能将(float*)类型赋值给(int*)类型 salary_ptr = age; // 出错,不能将(int*)类型赋值给(float*)类型 salary_ptr = age_ptr;// 出错,不能将(int*)类型赋值给(float*)类型 说明: 空指针NULL 其ASCII码为0 age_ptr = NULL ; 指针使用前需初始化,使其指向一个明确的对象 例: int *p ; *p = 1; 错误,p没有指向一个明确的对象,则p中存放的是一个不确定的地址,把1写到一个不确定的地方去了 三、指针运算 指针定义中的基类型决定了在指针运算中每次操作的字节数 指针只能做+、-这两种算术运算,而且只能加减整数:假设有一指针p,n是一个整数 p±n后得到的地址:p原来指向的地址± n*sizeof(p的基类型) 四、引用 引用:给对象取一个别名,主要用于三个用途 独立引用 作为参数传递 作为函数返回类型 1、独立引用 一般形式: 基类型 引用名 = 标识符; 为“标识符”所代表的变量声明一个叫“引用名”的别名 例: int i = 5; int j = i ; int k = 10 ; j = k ; 说明 引用变量不另外分配内存空间 独立引用在声明时必须初始化,引用的基类型必须与建立联系的变量类型一致。引用名一旦被声明成一个变量的别名,则不能与其他变量相联系了 一个引用只能指向一个对象,一个对象则可有多个别名 在C++的实现中对独立引用做如下限制: 不允许创建引用数组:数组不能用引用生成一个别名,但数组元素可引用 空类型void不能引用 2、引用做函数形参 按引用调用的参数传递:实现双向的参数传递,形参为实参的别名 例子:用一函数交换两个变量的值 (1) 按值参数传递 void swap(int x,

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档