C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
二级指针与二维数组.
Advertisements

C语言程序设计基础 第10章 指针进阶 刘新国.
10.1 二级指针 10.2 指针与二维数组 10.3 指针的动态存储分配 10.4 函数指针 10.5 main函数的参数
Memory Pool ACM Yanqing Peng.
6.4 字符串与指针 1. 用字符数组存放一个字符串.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
马克思主义基本原理概论 第三章 人类社会及其发展规律.
Using C++ The Weird Way Something about c++11 & OOP tricks
C++语言程序设计教程 第5章 构造数据类型 第5章 构造数据类型.
走向C++之路 WindyWinter WindyWinter感谢诸位前来捧场。
資料大樓 --談指標與陣列 綠園.
cn/~dongeliu/dsa.html 刘 东 信息学院6系 中国科学技术大学
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C 程式設計— 指標.
第7章 间接访问—指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 指针作为函数参数和返回值 指针数组与多级指针
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
C语言程序设计 李祥.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第8章 结 构 体.
多维数组与指针 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1. 多维数组元素的地址 先回顾多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第二章 Java语言基础.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C++大学基础教程 第6章 指针和引用 北京科技大学 信息基础科学系.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第二章 Java基本语法 讲师:复凡.
指针 几个概念:  指针也是一种数据类型,具有指针类型的变量,称为指针变量。
物件導向程式設計 CH2.
第6讲 指针与引用 6.1 指针 6.2 引用.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
本节内容 Private Memory 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第九节 赋值运算符和赋值表达式.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
第6章 指针与数组 十一、程序动态存储结构 十二、指针的类型转换和匹配关系 十三、下标表达式与访问指针寻址计算.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
本节内容 结构体.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
本节内容 在堆中创建对象 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
資料!你家住哪裏? --談指標 綠園.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
隨機函數.
第7章 地址和指针 7.1 地址和指针的概念 7.2 指针变量的定义和指针变量的基类型 7.3 给指针变量赋值 7.4 对指针变量的操作
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计

基本知识 a C++语言程序设计

动态内存不能通过变量名来使用,而只能通过指针来使用 为什么需要使用堆内存 6.2 动态内存 动态内存 是在程序运行时才可以申请、使用和释放的内存,即存放动态数据的区域 动态分配的内存都位于“堆区” 动态内存也称为“堆内存” 动态内存不能通过变量名来使用,而只能通过指针来使用 为什么需要使用堆内存 需要存储大量数据时,一般采用堆内存存储 数组元素个数在程序运行时才能确定时,只能申请使用堆内存 C++语言程序设计

6.2 动态内存 C语言的动态内存申请和释放 通过函数malloc()申请动态内存 通过函数free()释放动态内存 函数的声明包含在“stdlib.h”头文件中 C++语言程序设计

6.2 动态内存 malloc函数 原型为:void * malloc(unsigned int size); malloc函数申请size 个字节的内存空间,并返回指向所分配内存的void 类型的指针(void *),如果没有申请到内存空间,则返回NULL void 类型的指针(void *)具有很好的通用性,可以通过类型转换赋值给任何类型的指针变量 例如:int * pn = (int *)malloc(sizeof(int)); 按照int类型数据存储空间的大小分配内存空间 整型指针pn指向该内存空间 通过*pn访问该内存空间 C++语言程序设计

6.2 动态内存 free函数 原型为:void free(void * ptr); free函数释放先前malloc所分配的内存,所要释放的内存由指针ptr指向 例如:释放前例用malloc函数申请的动态内存 free(pn); pn=NULL; 因为pn指向的内存已释放,但pn的值还存在,为其赋值0后,可以避免使用它来访问无效内存 C++语言程序设计

动态内存使用完毕后,要用delete运算符来释放 6.2 动态内存 C++的动态内存申请和释放 使用new、delete运算符 使用运算符new申请单个动态数据 格式:new <类型名> (初值) 如果申请成功,返回指定类型内存的地址;如果申请失败,返回NULL指针 例如:int *pi=0; pi = new int(10); //*pi的值是10 动态内存使用完毕后,要用delete运算符来释放 格式:delete <指针名>; 上例:delete pi; pi=NULL; C++语言程序设计

6.2 动态内存 使用new申请动态一维数组 释放动态数组空间都用相同的表达式 格式:new <类型名> [表达式] 表达式用来指定数组大小 在动态申请数组空间时,不可以对数组进行初始化 例如:int *piarray=new int[10]; 释放动态数组空间都用相同的表达式 格式:delete [ ]<指针名>; 例如:delete[ ] piarray; piarray=NULL; C++语言程序设计

6.2 动态内存 例:在堆内存中申请空间存放大数组 C++语言程序设计 //堆内存的申请和释放 #include <iostream> #include <ctime> using namespace std; void main() { const int N = 10000000; int *parr = new int[N]; // int *parr = (int *)malloc(N * sizeof(int)); srand(time(NULL)); int *pm = parr; for (int i=0; i<10; i++) { *pm = rand()%100; pm++; } for (int i=0; i<20; i++) cout<<*(parr+i)<<endl; delete [] parr; //free(parr); C++语言程序设计