为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C++指针

2010-10-13 50页 ppt 1MB 16阅读

用户头像

is_336491

暂无简介

举报
C++指针null第六章 指针第六章 指针C++程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值6.1 指针的基本概念程序中: int i; float k; 内存中每个字节有一个编号-----地址 i k 编译或函数调用时为其分配内存单元变量是对程序中数据 存储空间的抽象1. 变量与地址6.1 指针的基本概念2. 指针与指针变量指针:一个变量的...
C++指针
null第六章 指针第六章 指针C++程序中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值6.1 指针的基本概念程序中: int i; float k; 内存中每个字节有一个编号-----地址 i k 编译或函数调用时为其分配内存单元变量是对程序中数据 存储空间的抽象1. 变量与地址6.1 指针的基本概念2. 指针与指针变量指针:一个变量的地址,它是一个整数形式的常量。 指针变量:专门用来存放地址的变量叫指针变量,它的值也可以是数组或函数的地址 。2000指针指针变量 变量的内容 变量的地址2. 指针与指针变量3. 取地址运算符&与指针运算符*含义: 取变量的地址 单目运算符 优先级: 14(第二高的级别) 结合性:自右向左含义: 从某个地址中获取数据 单目运算符 优先级: 14 结合性:自右向左两者关系:互为逆运算3. 取地址运算符&与指针运算符*指针运算符示例i_pointer-----指针变量,它的内容是地址量2000 *i_pointer----指针的目标变量i,它的内容是数据10 &i_pointer---指针变量占用内存的地址:2004i_pointer &i &(*i_pointer) i *i_pointer *(&i)指针运算符示例4. 直接访问与间接访问例 i=3; -----直接访问3例 *i_pointer=20; -----间接访问20直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量4. 直接访问与间接访问6.2 指针变量的定义与引用1. 指针变量与其所指向的变量之间的关系2. 指针变量的定义 一般形式: [存储类型] 数据类型 *指针名;合法标识符指针变量本身的存储类型指针的目标变量的数据类型表示定义指针变量 不是乘法运算符*例 int *p1,*p2; float *q ; static char *name;注意: 1、int *p1, *p2; 与 int *p1, p2;不一样。 2、指针变量名是p1,p2 ,不是*p1,*p2。 3、指针变量只能指向定义时所规定类型的变量。 4、指针变量定义后,变量值不确定,应用前必须先赋值。6.2 指针变量的定义与引用3.对指针变量的操作将地址值赋给指针变量例 int i; int *p=&i;变量必须已说明过; 并要求两者类型一致。例 int i; int *p=&i; int *q=p;用已初始化指针变量作初值例 main( ) { int i; static int *p=&i; () .............. }不能用auto变量的地址 去初始化static型指针一般形式:[存储类型] 数据类型 *指针名=初始地址值;3.对指针变量的操作(1) 指针变量的初始化3.对指针变量的操作(续)3.对指针变量的操作(续)(2) 指针变量 +/- 整数新的地址int a,b,c,d,*p,*q; p=&b; q=p+1; 所加的数值:整数*字节数 q=p-1; p++; ++p; 注意:*p++; *++p; 不同于 (*p)++; ++ (*p);(3) 指针变量 - 指针变量 整数(多少个数) q-p 1;(4) 关系运算 p>*p; p=a; inv(p,10); cout<<"The array has been reverted:\n"; for(p=a;p>*p; p=a; inv(p,10); cout<<"The array has been reverted:\n"; for(p=arr;p0) k=j; if(k!=i) { temp=name[i]; name[i]=name[k]; name[k]=temp;} } }例 对字符串排序void print(char *name[],int n) { int i=0; char *p; /*p=name[0];*/ while(iy) z=x; else z=y; return(z); }main() { int max(int ,int), (*p)(); int a,b,c; p=max; scanf("%d,%d",&a,&b); c=(*p)(a,b); printf("a=%d,b=%d,max=%d\n",a,b,c); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); }1. 用指向函数的指针变量调用函数2. 用指向函数的指针变量作函数参数例 用函数指针变量作参数,求最大值、最小值和两数之和2. 用指向函数的指针变量作函数参数3. 返回指针值的函数函数定义形式: 类型标识符 *函数名(参数表); 例 int *f(int x, int y)3. 返回指针值的函数例 用指针函数实现:有若干学生成绩,要求输入学生序号后,能输出其全部成绩。main() { float score[][4]={{60,70,80,90}, {56,89,67,88},{34,78,90,66}}; float *search(float (*pointer)[4],int n), *p; int i,m; printf("Enter the number of student:"); scanf("%d",&m); printf("The scores of No.%d are:\n",m); p=search(score,m); for(i=0;i<4;i++) printf("%5.2f\t",*(p+i)); } float *search(float (*pointer)[4], int n) { float *pt; pt=*(pointer+n); return(pt); }6.6 有关指针操作的小结1.指针变量是把其它变量的地址作为内容的变量。指针变量的内容可以是0、NULL和一个确定的地址。 2. 地址运算符(&) 返回其操作数的地址。 地址运算符的操作数必须是一个变量(或数组元素)。 3. 指针运算符(*) 又称为“间接引用运算符” ,它表示从相应的存储单元中获取某种类型的数据值。 4. 指针±整数 5. 指针1-指针2 6. 指针的关系运算,如:指针1<指针2 7. 在调用带有参数的函数时,如果调用函数要求被调用函数修改参数的值,应该把参数的地址传递给被调用函数,被调用函数用间接引用运算符(*)修改调用函数中的参数的值。6.6 有关指针操作的小结指针的数据类型指针的数据类型第十章 作业例 下列定义的含义 (1)int *p[3]; (2)int (*p)[3]; (3)int *p(int); (4)int (*p)(int); (5)int *(*p)(int); (6)int (*p[3])(int); (7)int *(*p[3])(int);第十章 作业
/
本文档为【C++指针】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索