八、复合数据的描述 一一构造数据类型 (指针及其应用)
八、复合数据的描述 −−构造数据类型 (指针及其应用)
主要内容 指针类型概述 ■指针的基本操作 ■指针作为参数类型 ■指针与动态变量 指针与数组 函数指针 引用类型
主要内容 ◼ 指针类型概述 ◼ 指针的基本操作 ◼ 指针作为参数类型 ◼ 指针与动态变量 ◼ 指针与数组 ◼ 函数指针 ◼ 引用类型
指针类型概述 需求: 。如何把数据的地址传给一个函数, 以提高参数传递的效率? 相应参数的类型应是什么? 。如何使用元素个数可变的数组? 指针类型为解决上述问题提供了支持。 。指针是内存地址的抽象,一个指针代表了一个内存地址。 指针类型是一种用户自定义的简单类型,它的值集是由 些内存地址(指针)构成。 获取变量的地址: &<变量名>
指针类型概述 ◼ 需求: • 如何把数据的地址传给一个函数,以提高参数传递的效率? 相应参数的类型应是什么? • 如何使用元素个数可变的数组? ◼ 指针类型为解决上述问题提供了支持。 • 指针是内存地址的抽象,一个指针代表了一个内存地址。 • 指针类型是一种用户自定义的简单类型,它的值集是由一 些内存地址(指针)构成。 ◼ 获取变量的地址: &<变量名>
指针类型的定义 ■指针类型的定义格式为: typedef<类型>*<指针类型名>: 。其中,<指针类型名>表示一个指针类型,其 值集为<类型>所表示的数据的地址。 例如,下面定义了一个指针类型Pointer, 其值集为所有int变量的地址 typedef int *Pointer;
指针类型的定义 ◼ 指针类型的定义格式为: typedef <类型> *<指针类型名>; • 其中,<指针类型名>表示一个指针类型,其 值集为<类型>所表示的数据的地址。 ◼ 例如,下面定义了一个指针类型Pointer, 其值集为所有int变量的地址。 typedef int *Pointer;
指针类型变量的定义 指针类型变量(简称:指针变量)的定义格式: 。<指针类型名><指针变量名>: 或 <类型>*<指针变量名>;/指针类型与变量定义合 例如,下面定义了一个指针类型变量p: typedef int *Pointer; ·Pointer p;/p为一个指向整数类型数据的指针变量 或 ·int*p;/p为一个指向整数类型数据的指针变量 p的取值可以是下面int型变量x的地址: int x; ●p=&X;
指针类型变量的定义 ◼ 指针类型变量(简称:指针变量)的定义格式: • <指针类型名> <指针变量名>; 或 • <类型> *<指针变量名>; //指针类型与变量定义合一 ◼ 例如,下面定义了一个指针类型变量p: • typedef int *Pointer; • Pointer p; //p为一个指向整数类型数据的指针变量 或 • int *p; //p为一个指向整数类型数据的指针变量 p的取值可以是下面int型变量x的地址: • int x; • p = &x;