南开大学C++课件 第 6章a 指针,引用与动态内存分配
更新时间:2023-04-24 05:47:01 阅读量: 实用文档 文档下载
- 南开大学环境化学课件推荐度:
- 相关推荐
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
第 6章 指针,引用与动态内存分配
6.1 6.2 6.3 6.4 6.5
选择排序算法 指针类型 指针与动态内存分配 引用类型 程序实例
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
C++语言也为用户对于变量所占空间的地址提供了进 行操作的机制,这就是指针类型和引用类型。指针和 引用不是一种独立的数据类型,而是一种导出数据类 型。指针类型也是C语言和Pascal语言的重要类型, 而引用类型是C++语言中新的重要类型,在Java语言 和C#语言等一些新的语言中,引用类型取代了指针类 型 排序的任务是把已经存在一个数组里的n 个数按从 大到小的顺序排列,可以采用多种不同的方法实现, 选择排序算法的思路简单,容易理解,每次总是从无 序的序列中选出最大者,交换到序列的左端,于是, 无序的序列越来越短,经过n-1步,达到排序的目的。
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1void ssort(float *, int ); //原型说明 void main(void){ int i, seed, n=20; cout<<endl<<"seed=" ; cin>>seed; cout<<endl; srand(seed); float list[20], *pf; for(i=0; i<n; i++) { list[i] = rand( ); cout<<setw(8)<<list[i]; if ((i+1)%8==0) cout<<endl;} i=0; cout<<endl; pf=&list[0]; ssort (pf,n); while ( i<n ) { cout<<setw(8)<<list[i]; i++; if (i% 8 == 0) cout<<endl; } cout<<endl;
选择排序算法void swap1(float *a, float *b) { float temp; temp = *a; *a = *b; *b = temp; } void ssort (float *a, int m) { int i, j, index; float elem; for (i=0; i<m-1; i++){ elem = *(a+i); index = i; for (j=i+1; j<m; j++) if (*(a+j)>elem){ elem = *(a+j); index = j; } swap1(a+i, a+index); } }
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
运行结果:
seed=6523 21339 28822 26220 8712 18120 1280 27491 8647 7137 2030 24101 20505 4452 26942 10989 29919 27130 20996 17227 13559 29919 28822 27491 27130 26942 26220 24101 21339 20996 20505 18120 17227 13559 10989 8712 8647 7137 4452 2030 1280
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
这个程序重点是介绍函数ssort( ) 和swap1( ) 的设计, 主函数做了三件事: 1)为长度为n的数组list[n]输入n个随机数,作为 排序算法处理的对象 2)调用函数ssort()进行排序。 3)把经过排序的数组list[20]的值输出。 函数swap1( ) 的定义中使用了指针类型的参数。 参数a,b 是float 型的指针变量,即它们的值应 是浮点型变量的地址。5
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
在函数swap1( )中使用了*a 和*b,这里符号‘*’不是乘 法运算符,而是表示指针变量(a 或b)所指向的那个变 量。 例如: int n=4, *p; p=&n; *p++; 表示有整型变量n,和整型指针变量p,用&n 表示变量n 的 地址,p=&n 使指针p 指向变量n,而这时*p 正是表示变量 n,*p++相当于n++ ‘&’和‘*’是一对用于指针操作的互逆的单目运算符, (在这里‘&’不是 引用 的意思)。&n 表示变量n 的 地址,而*p 表示指针p 指向的变量或该变量的值。6
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
函数s
wap1(float *a,float *b){…}, 与5.2.5中 介绍的swap(int &a, int &b){…} 函数作一比 较,虽然它们都达到交换两个变量内容的目的, 但采用的方式却是不同的。 在swap1( ) 中有两个指针型参数,属于赋值形 参,在调用时创建两个新的指针变量a 和b,把实 参表达式计算的结果地址赋给a 和b,从而使指针 a 和b 指向相应的变量。而在swap( )中形参a,b 为引用型,它是在调用时直接由实参的变量代替 a,b 参加swap( )函数的函数体操作。7
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.1
选择排序算法
函数ssort( ) 是一个用于对m 个浮点数组进行排 序的函数,其参数为 float 型指针和int 型整 数。前者指明数组的首地址,后者为数组中元素 的个数,执行结果是把这个数组中的浮点数按从 大到小的顺序排列好。 把n个数排好次序可以有许多种不同的算法,这 个函数是每次把尚未排好的元素中的最大元素选 出,移到左端,最终形成从大到小的排列,故被 称为选择排序算法。8
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.2
指针类型 --
指针类型的变量说明格式为:<类型名> * <指针变量名1>, * <指针变量名2>, ... ;
例如: int i=3; int *pi; //pi为int*型变量,其取值为一个int型变量的地址, //也称pi为指向int型数据的指针变量(简称指针)9
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
pi = &i; //&作单目算符时为 取变量地址 , //此处将变量i的地址赋给指针变量pi cout<<*pi; //输出:*pi之值即3 // * 作单目算符时为 取内容 //(取指针所指向的那一变量的内容) *pi = 123; //给pi所指向的那一变量,既i, //赋值123(等同于: i=123;) float *pn=NULL;// NULL 的指针变量,规则规定NULL 与
整数0 通用,它是唯一可以赋给任一类型指针变量的值,表 示当前该指针未指向任一变量。因此,一个指针变量,可有 三种状态: 未赋任何值, 悬空 状态。 NULL值。未指向任一变量。 指向某一变量10
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
读如下程序,看执行后会显示出什么结果?#include <iostream.h> void main(){ int i,j; int *pi, *pj; i = 3; j = 6; pi = &i; pj = &j; cout<<"i,j="<<i<<", "<<j<<endl; cout<<"*pi,*pj="<<*pi<<", "<<*pj<<endl; *pi = 123; *pj = *pi + 2; cout<<"*pi,*pj="<<*pi<<", "<<*pj<<endl; cout<<"i,j="<<i<<", "<<j<<endl; }11
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
程序执行后的显示结果如下: i,j=3, 6 *pi,*pj=3, 6 *pi,*pj=123, 125
i,j=123, 125
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
6.2
指针变量的操作(运算) --
1. 取地址运算&和取内容运算*
注意如下3处出现的*pi,它们的含义不相同:int i=23, *pi=&i; cout<<*pi; *pi=56;
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
第一行的 *pi”处于变量说明处,是说明pi为 int*”型 变量,并同时将该指针变量初始化为i的地址。不可将此处的 * 理解为 取内容 运算,它与前面的int联合起来以说明 pi为 int*”型变量。 第二行的 *pi”表示指针变量pi所指向的那一变量(即i) 的内容(*理解为
取内容 运算,使用其值)。
第三行的 *pi”为左值(存储空间概念),表示要改变指 针变量pi所指向的那一变量(即i)空间中的内容(使用其存 储空间)。14
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
例:int a = 5; 定义整型变量 a 有两个值:
内容
地址
1、该变量内容 5; a 5 2、该变量在内存中的地址;它被表示为&a。 1000H int *pa = &a;pa 1000 用 * 定义的整型指针变量 pa 也有两个值: 2000H 1、内容为变量a在内存中的地址,即&a;
2、变量pa在内存中的地址;它被表示为&pa。 3、pa 是一个指向变量a 的指针。变量a 与指针pa 的关系图15
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
2. 数组指针的算术运算
1) 若p为指针,已指向数组的某一元素,则 p+i(或p-i,其中i为正整数)也为一指针,它指向当 前p已指元素的后面(或前面)第i个元素。例1: int a[10]; //任一数组名字a都是一个常量指针, //代表数组的首地址, 也即, a总等同于&a[0]16
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
则,无论何时, 下述两种表示数组元素a[i] 的方式总是相同的: a[0] <==> *a a[1] <==> *(a+1) ... a[9] <==> *(a+9) 另,下述两种表示数组元素a[i]之地址的方式 也总是相同的: &a[0] <==> a &a[1] <==> a+1 ... &a[9] <==> a+917
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
例2: int a[10]; int* pa=a; //pa为变量指针,此时pa与a //均指向数组a的首元素则,下述三种表示数组元素a[i]的方式是等 同的: a[0] <==> *a <==> *pa a[1] <==> *(a+1) <==> *(pa+1) ... a[9] <==> *(a+9) <==> *(pa+9)18
此为南开大学计算机专业C++课件。供初学者参考。教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟 周玉龙编著,《高级语言 C++程序设计实验指导》周玉龙,高教出版社,2006,十五国家重点教材 课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与
另,下述三种表示数组元素a[i]之地址的方式 也是等同的: &a[0] <==> a <==> pa &a[1] <==> a+1 <==> pa+1 ... &a[9] <==> a+9 <==> pa+9 而 pa+=3; 及 pa--; 也 都 为 正 确 的 句 子 ( 但 , a+=3; 及 a--; 却都是不正确的句子! 为什么?)。19
正在阅读:
南开大学C++课件 第 6章a 指针,引用与动态内存分配04-24
成本会计定额成本法案例一09-27
高中地理必修2第二章章节练习06-15
思科认证CCNP经典试题04-05
拥抱春天作文350字07-09
2015蛋白质与酶复习题11-01
关于小学生自由作文06-15
CPA经济法口诀记忆08-10
中国资源现状及解决方案12-07
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 南开大学
- C++
- 指针
- 课件
- 分配
- 引用
- 内存
- 动态
- 南车青岛四方机车车辆股份有限公司转向架分厂
- AC10变频器 产品手册 中文
- 中原深圳建筑中心城市综合体
- 6.第六章 组织结构设计
- 小学英语第一学期英语期中质量分析
- 怎么祛除妊娠纹、妊娠纹怎么去掉
- 低介电高频覆铜板及半固化片基材研制与开发
- 黑龙江哈尔滨师大附中12-13学年度高三上学期期末考试数学(文)试
- 带式输送机机械设计课程设计说明书
- Journal_Impact_factor_2022
- 基于单片机的温度测量系统的设计
- 如何编制发改委立项用龙虾仁项目可行性研究报告(甲级-发改委-经
- 女神联盟手游玩法之女神圣殿
- 200个句子记忆中考词汇1-60
- 生成语言学与认知语言学差别对比研究
- 七年级数学平面图形的认识同步测试
- 中国城市统计年鉴1999_excel
- 英国优势产业调研报告
- 中国版智能电网待电改破冰 利益协调成最大障碍
- 小学二年级奥数练习题及答案 2