版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 y= + pxy= ( + px) y= px+y= ( px+ ) 留意优先级和结合顺序留意优先级和结合顺序问题:问题:y= px+和和y= ( px)+的含义?的含义?struct student int number; char name4;student *pst;pstpst=pst+1; pxn: pxnsizeof(T)px-py:( (int)px-(int)py) / sizeof(T)px+n, px-n 将指针从当前位置向前或向后挪动将指针从当前位置向前或向后挪动n个数据单位,而不是个数据单位,而不是n个字节。个字节。 这取决于指针所指向的数据类型这取决于指针所指向的数
2、据类型(T)。 px-py求出的是两指针位置之间的数据个数,而不是地址差。求出的是两指针位置之间的数据个数,而不是地址差。 int *p, *q; int i; q=&i; p=q; 不同类型的指针以及指针和普通整数间的关系运算是无意义的。不同类型的指针以及指针和普通整数间的关系运算是无意义的。 字符数组是常量不能赋值。字符数组是常量不能赋值。指针与数组的差别:指针与数组的差别:指针是地址变量,可恣意改动指针是地址变量,可恣意改动它的值;它的值;数组名是地址常量,其值不能数组名是地址常量,其值不能改动。改动。 ex. 1 include main ( ) static char str =st
3、ring; char *ps; ps=str; while ( *ps !=0) cout*ps; ps+; coutendl; ex. 2 void main ( ) int a23, *pa2; pa0=a0; pa1=a1; for ( int i=0; i3; i+ ) *( pa0+i)=i; for ( i=0; i3; i+ ) *( pa1+i)=i; pa 0 pa 1 0 1 2 0 1 2 pa 2 a 2 3 a00 a01 a02 a10 a11 a12 ex. 3 char *string_name ( int n ) char * string = illegal
4、 string, string 1, string 2, string 3 return ( n3 ) ? string0: stringn; static前往的是变量地址,必需保证前往的是变量地址,必需保证函数前往后,这个变量依然存函数前往后,这个变量依然存在。要前往函数中部分变量的在。要前往函数中部分变量的地址,应声明为静态的。地址,应声明为静态的。 要将函数指针指向一详细的函数,用赋值语句:要将函数指针指向一详细的函数,用赋值语句: ex. 5 int f( char ); fp=&f;int i=f (a) ;int i= (*fp) (a); 要保证函数指针的参数和前往值与所指向的函
5、数正好匹配。要保证函数指针的参数和前往值与所指向的函数正好匹配。 ex. 6 void (*fp) ( char * ); void f1(char * s1 ); int f2( char * s2); void f3( int *i1 ); void main( ) fp=&f1; fp=&f2; fp=&f3; (* fp) (asdf); (* fp) (1); int i=(*fp) (qwer); void * 性质:任何类型性质:任何类型的指针都可以赋给它。的指针都可以赋给它。作为参数传入指向任作为参数传入指向任何类型的指针都可与何类型的指针都可与它匹配。它匹配。 两个比较函数:
6、两个比较函数: #include int cmp_int ( void *p, void *q) if ( * (int *) p * (int *) q ) return 1; else if ( * (int *) p = * (int *) q ) return 0; else return 1; int cmp_str ( void *p, void *q ) return strcmp ( * (char *) p, * (char *) q ); 主程序:主程序: #include int main ( ) static int ii = 3,9,5,4; static char
7、* str =compare, the, string ; sort ( ii, 4, sizeof (int), &cmp_int ); sort ( str, 3, sizeof ( char *) , &cmp_str ); coutThe result of sort string:endl; for ( int i=0; i3; i+) coutstr i ; ex. 8 int f (int i); int f (char c); int (*fp1) (int)=&f; int (*fp2) (char)=&f; int (*fp3) (double)=&f; int (*fp4
8、) ()=&f; 指指向向常常量量的的指指针针: const T* p p *p &p 修修改改 修修改改 指指针针常常量量: T * const p p *p &p 修修改改 修修改改 指向常量对象指向常量对象 的指针常量:的指针常量: const T * const p p *p &p 修改修改 修改修改 ex. 9 const int n=1; int *pInt; pInt=&n; *pInt=2; C+函数可重载,在函函数可重载,在函数指针赋值时要留意二数指针赋值时要留意二义性。义性。留意:不能把一个留意:不能把一个const变量的地址变量的地址赋给指向非赋给指向非const的指针,
9、否那么会的指针,否那么会无形中改动常量的值无形中改动常量的值 ; 定定义义了了结结构构的的组组成成,未未分分配配存存储储单单元元 嵌嵌套套不不能能包包含含自自身身 构造的成员可以是变量,数组,也可是指针和函数。构造的成员可以是变量,数组,也可是指针和函数。 运用构造要创建对象:运用构造要创建对象: struct person LiMing; struct person LiMing; struct person struct person * *p=new person;p=new person; 构造嵌套构造的成员是另一构造对象:构造嵌套构造的成员是另一构造对象: struct date s
10、truct person struct date struct person int day; char name20; int day; char name20; char month5; char sex; char month5; char sex; int year; char addr50; int year; char addr50; ; double salary; ; double salary; date birthday; date birthday; ex. 11 struct inode int data; inode *next; ; for( i=0; ins; i
11、+) classi.grade; if(i=cutoff) coutpassn; else coutfailn; void swap(STUDENT &ps1, STUDENT &ps2) STUDENT temp; strcpy(, ); temp.grade=ps1.grade; strcpy(, ); ps1.grade=ps2.grade; strcpy(, ); ps2.grade=temp.grade; 枚举的运用:枚举的运用: ex. 13 vo
12、id f( ) ex. 13 void f( ) color suit=white; color suit=white; int i=red; int i=red; suit=i; / suit=i; /错,错, suit=color(i); / suit=color(i); /正确,把整数赋给正确,把整数赋给枚举类型要强迫类型转换枚举类型要强迫类型转换 i=suit; i=suit; suit=4; / suit=4; /错错 在特定时辰,结合只需一在特定时辰,结合只需一个成员被保管,而不提供个成员被保管,而不提供其它成员的信息。其它成员的信息。 标识符的值也可以本人定义: 例如:enum color red, white=7,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年办公室装修设计与施工合同
- 静电镊子行业市场现状供需分析及重点企业投资评估规划分析研究报告(2024-2030版)
- 2024年代理合同范本:实务操作指南
- 2024年学校物业管理合作协议
- 吉他放大器行业市场现状供需分析及重点企业投资评估规划分析研究报告(2024-2030版)
- 全球与中国国学培训行业发展现状及趋势预测分析研究报告(2024-2030版)
- A10学生在线学习安全意识方案
- 2024年修订:城市快递配送协议
- 2024年农膜生产销售合同
- 2024年个人住宅木地板铺设合同
- 供应室护理责任组长竞聘
- 高中数学教师的专业发展路径
- LTC与铁三角从线索到回款
- 《旅游市场营销》课程教学设计
- 护理质量安全与风险管理的案例分析
- 工程流体力学课后习题答案-(杜广生)
- 小儿健脾胃知识讲座
- 【比亚迪新能源汽车企业财务风险识别与控制分析13000字(论文)】
- 小细胞肺癌查房
- 外研社英语五年级上册期中期末复习要点
- 《新中国的科技成就》
评论
0/150
提交评论