C语言程序设计课件第06章数组、指针和字符串.ppt
文本预览下载声明
第六章 数组、指针与字符串;本章主要内容;数组的概念;数组的几点说明;对象数组;对象数组初始化;数组元素所属类的构造函数; 数 组;声明
例: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
显示全部