文档详情

C语言程序设计课件第06章数组、指针和字符串.ppt

发布:2017-04-19约6.72千字共89页下载文档
文本预览下载声明
第六章 数组、指针与字符串;本章主要内容;数组的概念;数组的几点说明;对象数组;对象数组初始化;数组元素所属类的构造函数; 数 组;声明 例:int i; int *i_pointer; ; 语法形式 存储类型 数据类型 *指针名=初始地址; 例:int a , *pa=a; 注意事项 用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。 可以用一个已赋初值的指针去初始化另一个指针变量。 不要用一个内部auto变量去初始化static指针。;指针名=地址 向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。 指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是unsigned long int型。 允许声明指向 void 类型的指针。该指针可以被赋予任何类型对象的地址。但是不能通过void类型的指针间接访问所指向的变量,必须经过强制类型转换。 ;例6-6 void类型指针的使用;指针变量的算术运算;pa;;关系运算 指向相同类型数据的指针之间可以进行==与!=的关系运算。 指向不同数据类型的指针,以及指针与一般整数变量之间的关系运算是无意义的。 指针可以和零之间进行等于或不等于的关系运算。例如:p==0或p!=0;指向数组元素的指针;指针数组;例6-8 利用指针数组存放单位矩阵; //输出单位矩阵 coutMatrix test:endl; for(int i=0;i3;i++) { for(int j=0;j3;j++) cout ; coutendl; } };例6-9 二维数组举例;例6-9 二维数组举例;以指针作为函数参数;例6-10;void main() { int i, n; float x, f; coutEnter three(3) floating point numbers endl; for (i = 0; i 3; i++) { cin x; splitfloat(x,n,f); coutInteger Part is n Fraction Part is fendl; } };运行结果: Enter three(3) floating point numbers 4.7 Integer Part is 4 Fraction Part is 0.7 8.913 Integer Part is 8 Fraction Part is 0.913 -4.7518 Integer Part is -4 Fraction Part is -0.7518 ;例: 输出数组元???的内容和地址;void main() { long list[5]={50, 60, 70, 80, 90}; coutIn main, address of array is unsigned long(list)endl; coutendl; Array_Ptr(list,5); };运行结果: In main, address of array is 6684132 In func, address of array is 6684132 Accessing array using pointers Address for index 0 is 6684132 Value is 50 Address for index 1 is 6684136 Value is 60 Address for index 2 is 6684140 Value is 70 Address for index 3 is 6684144 Value is 80 Address for index 4 is 6684148 Value is 90;指针型函数;指针型函数;声明形式   数据类型 (*函数指针名)(); 含义: 数据指针指向数据存储区,而函数指针指向的是程序代码存储区。;例6-11函数指针; print_stuff(pi); function_pointer = print_stuff; function_pointer(pi); function_pointer = print_message; function_pointer(two_pi); function_pointer(13.0); func
显示全部
相似文档