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

Slides:



Advertisements
Similar presentations
第九章 指针 西安工程大学.
Advertisements

第七章 指针 计算机公共教学部.
第六章 指针 指针的概念 指针变量 指针与数组 指针与函数 返回指针值的函数.
第十章 指针 分析C程序的变量所存放的数据:  数值型数据:整数、实数  字符型数据:字符、字符串 这些变量具有以下性质:
第7章 指针 存储地址的变量的类型就是指针类型 能直接对内存地址操作, 实现动态存储管理 容易产生副作用, 初学者常会出错
二级指针与二维数组.
C语言程序设计基础 第10章 指针进阶 刘新国.
10.1 二级指针 10.2 指针与二维数组 10.3 指针的动态存储分配 10.4 函数指针 10.5 main函数的参数
第 6 章 第 6 章 指 针 指 针 1.
第6章 指针 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 6.5 函数与指针 6.6 返回指针值的函数
6.4 字符串与指针 1. 用字符数组存放一个字符串.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第六节 二维数组和指针 二维数组的地址 对于一维数组: (1)数组名array表示数组的首地址, 即array[0]的地址;
8.1 指针的概念 8.2 指针变量 8.3 指针变量的基础类型 8.4 指针的运算 8.5 指针与一维数组 8.6 指针应用实例
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
Using C++ The Weird Way Something about c++11 & OOP tricks
第6章 指针 学习目的与要求: 了解指针的概念和相关术语 熟练掌握指向变量、数组和字符串的指针变量的使用方法 了解指向函数的指针变量
指 针 为什么要使用指针 指针变量 指针与数组 返回指针值的函数 动态内存分配 通过指针引用字符串 指向函数的指针 小 结 习 题.
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第八章 指 针 8.1 指针的概念与定义 8.2 指针作函数参数 8.3 指针与数组 8.4 指针与函数 8.5 复杂指针.
第 十 章 指 针.
第7章 间接访问—指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 指针作为函数参数和返回值 指针数组与多级指针
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
程式撰寫流程.
二维数组的指针表示 与复杂的指针例子 专题研讨课之三.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++语言程序设计 第六章 数组 指针与字符串 清华大学 郑 莉.
第8章 指针.
第六章 指针 指针的概念 指针的运算 指向变量的指针 指向数组的指针 指向函数的指针 二级指针 主讲:李祥 时间:2015年10月.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
第四章 数组 4.4.1一维数组的定义和初始化 一、一维数组的定义和初始化 1.一维数组定义 定义格式:类型 数组名[常量表达式];
欲穷千里,更上层楼 第十章 指 针 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环,
第五章 习题课 电子信息与计算机科学系 曾庆尚.
C++大学基础教程 第6章 指针和引用 北京科技大学 信息基础科学系.
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
第五章 指针 5.1 指针的概念 5.2 指针与数组 5.3 字符串指针.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
9.1 地址、指针和变量 9.2 指针运算 9.3 指针与数组 9.4 函数与指针 9.5 程序综合举例 9.6 上机实训.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C语言大学实用教程 第7章 指针 西南财经大学经济信息工程学院 刘家芬
指针 几个概念:  指针也是一种数据类型,具有指针类型的变量,称为指针变量。
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
第6讲 指针与引用 6.1 指针 6.2 引用.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
第4章 Excel电子表格制作软件 4.4 函数(一).
C++程式設計入門 變數與運算子 作者:黃建庭.
第九节 赋值运算符和赋值表达式.
第五章 数组与指针 1 数组的简单操作 2 数组与指针 3 字符数组与字符串 4 字符串处理函数 5 数组应用举例.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
本节内容 指针类型的使用 视频提供:昆山爱达人信息技术有限公司.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C语言程序设计 第8章 指针.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第八章 指 针 北京邮电大学出版社.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

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

编程技能 a C++语言程序设计

(三)指针与数组 指针和数组 数组名本身就是地址 指针和数组名联系起来,可通过指针访问数组 虽然一维数组名和二维数组名都是地址,都可以看做某种指针,但是指针的类型是不同的 通过指针访问一维数组和二维数组的方法是不同的 C++语言程序设计

一维数组名可以看做指针,它具有以下特点: (三)指针与数组 一维数组名可以看做指针,它具有以下特点: 指针的类型是指向数组元素的指针 数组名也是数组第一个元素的地址 对于一维数组A来说,数组名A和&A[0]具有相同的类型和相同的值 通过数组名的间接引用运算,如*A,就可以访问数组的第一个元素A[0] 数组名所包含的地址值是不可改变的,是一种指针常量 C++语言程序设计

(三)指针与数组 通过指针访问一维数组 首先声明一个和数组类型相同的指针,并且用数组名来对指针初始化 例如:int A[5], *pa=A; 通过数组名或者所定义的指针变量,用多种方式访问数组元素 数组名和下标,如:A[0]、A[4] 指针和下标,如:pa[0]、pa[4] 指针加偏移量的间接引用,如:*(pa+0)、*(pa+4) 数组名加偏移量的间接引用,如:*(A+0)、*(A+4) 指针自增后的间接引用,如:*pa++ 注意:不允许数组名自加后的间接引用来访问数组元素 *A++访问数组元素是不允许的,因为数组名是指针常量 C++语言程序设计

(三)指针与数组 例:求整型数组的平均值 C++语言程序设计 注意:在使用“指针自增后的间接引用”的方法访问一维数组时,指针本身的地址值是变化的 //通过指针求整型数组的平均值 #include <iostream> using namespace std; void main() { int intArray[10]={8,11,23,34,45,56,65 ,78,86,97}; int i,num,sum=0; float average; int *ptint=intArray; //定义指针并初始化 //求数组元素的数目 num=sizeof(intArray)/sizeof(*intArray); for(i=0;i<num;i++) sum=sum+*ptint++; average=(float)sum/num; //指针指向数组第一个元素 ptint=intArray; cout<<"数组元素是:\n"; cout<<*ptint++<<" "; cout<<"\n平均值是:“ <<average<<endl; } 需要对指针重新初始化 C++语言程序设计

二维数组名可以看做指针,它具有以下特点: (三)指针与数组 二维数组名可以看做指针,它具有以下特点: 二维数组可以看成是一维数组的一维数组 对于二维数组char B[3][4],数组名B是其中第一个一维数组B[0]的地址,B+1就是下一个一维数组B[1]的地址 数组名B是指向一维数组的指针,所指向的一维数组的大小是4 数组名C是指向一维数组的指针,所指向的一维数组的大小是2 C++语言程序设计

(三)指针与数组 通过指针访问二维数组 首先声明一个指向一维数组的指针,并且用数组名来对指针初始化 格式: <类型名> (*指针变量名)[一维数组大小]; 例如:char B[3][4],C[3][2] ; char (*ptchb)[4]=B; char (*ptchc)[2]=C; 用指向一维数组指针访问第i行j列的数组元素:*(*(指针名+i)+j) 指针名:第0行的地址 指针名+i:第i行的地址 *(指针名+i):第i行第0列的地址 *(指针名+i)+j:第i行第j列的地址 *(*(指针名+i)+j):第i行第j列的数组元素 C++语言程序设计

例:用单循环程序,求二维数组元素的平均值 (三)指针与数组 例:用单循环程序,求二维数组元素的平均值 分析: 程序把二维数组dArray看成是一维数组 一维数组的首地址是 *pt( 实际是*dArray) 数组元素的地址是 *pt+i(0≤i<j) //用单循环程序,求二维数组元素的平均值 #include <iostream> using namespace std; void main() { int dArray[3][4]={32,42,12,25,56,76, 46,53,76,89,96,82}; int sum=0, j; float average; //**dArray就是元素 dArray[0][0] j=sizeof(dArray)/sizeof(**dArray); //定义指向一维数组的指针并初始化 int (*pt) [4]=dArray; for(int i=0;i<j;i++) sum=sum+*(*pt+i); average=(float)sum/j; cout<<“数据的平均值等于:” <<average<<endl; } C++语言程序设计

(三)指针与数组 指针数组 若数组元素是某种类型的指针,称这样的数组为指针数组 声明格式:<类型> *<数组名>[常量表达式]; 例如:char *member_name[10]; 字符指针数组: 例如:char *member_name[]={"Merry", "John", "Hill"}; 数组元素是指向一些不同长度的字符串常量的字符指针 如果定义一个指向数组元素的指针,则能够通过指针来访问其中的字符串 例如:char **pm=member_name; cout<<*pm<<endl; //显示: Merry C++语言程序设计

(三)指针与数组 例:指针数组及其访问程序 C++语言程序设计 //指针数组及其访问程序 #include <iostream> using namespace std; void main() { char *member_name[]={"Merry", "John", "Hill"}; cout << "The namelist show as:\n"; for ( int i = 0; i < 3; ++i ) cout << member_name [ i ] << '\n'; } C++语言程序设计

(三)指针与数组 指针数组作main函数的形参 为了在运行C++程序时,可以由用户提供执行程序所需要的参数,可以在程序中使用C++命令行参数 带有命令行参数的main函数的原型是: <类型> main(int argc, char *argv[]); argc:整数,存放命令行参数的数目,由程序自动统计,包括所执行的程序名 命令行参数都看做是字符串 argv[]:字符指针数组,存放各个字符串的地址 argv[0]指向执行的程序名字符串 argv[argc-1]指向最后一个输入的参数字符串 argv[argc]中自动存入NULL,表示输入结束 C++语言程序设计

(三)指针与数组 例:显示命令行参数 C++语言程序设计 //显示命令行参数 #include <iostream> using namespace std; void main( int argc, char *argv[] ) { cout << "共输入了"<< argc <<"个参数,分别是:\n"; for ( int i = 0; i < argc; ++i ) cout << argv[ i ] << ' '; } C++语言程序设计