C++言程序设计 第六章指针 第6章指针 ※6.1指针的基本概念 ※6,2指针与数组 ※63指针与函数 ※6.4引用
C++语言程序设计 第六章 指针 第6章 指针 ※6.1 指针的基本概念 ※ 6.2指针与数组 ※ 6.3 指针与函数 ※ 6.4 引用
C++播言程序设计 第六章指针 61指针的基本概念c有在程序运行时获得变量的地址 和操纵地址的能力,这种用来操纵地 址的特殊类型变量就是指针。 61。1指针的概念 在计算机中,内存是按字节编址的,一个字节就是一个基 本的存储单位,称为存储单元。每个存储单元都有一个编号 这个编号就称为该存储单元的“地址”。按地址可以找到相 应的存储单元进而对该存储单元的数据进行存取操作。因此 系统对数据的存取最终是通过内存单元的地址进行的
C++语言程序设计 第六章 指针 6.1指针的基本概念 C++有在程序运行时获得变量的地址 和操纵地址的能力,这种用来操纵地 址的特殊类型变量就是指针。 6.1.1指针的概念 在计算机中,内存是按字节编址的,一个字节就是一个基 本的存储单位,称为存储单元。每个存储单元都有一个编号, 这个编号就称为该存储单元的“地址” 。按地址可以找到相 应的存储单元进而对该存储单元的数据进行存取操作。因此 系统对数据的存取最终是通过内存单元的地址进行的
C++语言程序设计 第六章指针 00654000H 变量a 00654001H 00654002H 00654003H 00654004H 变量b 00654005H 00654006H 00654007H 如下语句: 00654008H int a= 3: int b= 4 图61变量的存储 则系统给整型变量a、b分别分配4个字节作为它们的存储空间,如图6.1所示,系统分配 00654000H~00654003H四个字节给变量a,00654004H~00654007H字节给b。我们说变量a 的地址是00654000H,地址00654000H指向的存储空间中存放的是数据3,也就是存储空间的 内容为3,即a的值。同样b的地址为00654004H 注意在内存中并不存在变量名,对变量值的存取都是通过地址进行的。 所谓指针,就是一个变量的地址,是一个常量。如变量的地址是00654000H,则00654000H 就是变量a的指针
C++语言程序设计 第六章 指针 图6.1 变量的存储 3 4 00654000H 00654001H 00654002H 00654003H 00654004H 00654005H 00654006H 00654007H 00654008H 变量a 变量b 如下语句: int a = 3; int b = 4; 则系统给整型变量a、b分别分配4个字节作为它们的存储空间,如图6.1 所示,系统分配 00654000H~00654003H四个字节给变量a,00654004H~00654007H字节给b。我们说变量a 的地址是00654000H,地址00654000H指向的存储空间中存放的是数据3,也就是存储空间的 内容为3,即a的值。同样b的地址为00654004H。 注意在内存中并不存在变量名,对变量值的存取都是通过地址进行的。 所谓指针,就是一个变量的地址,是一个常量。如变量a的地址是00654000H,则00654000H 就是变量a的指针
C++语言程序设计 第六章指针 612指针变量的定义 由于指针变量是一个变量,所以它具有和普通变量一样的属性,即指针变量 也有一定的存储类型、数据类型和使用范围。因此,在使用指针变量之前, 必须对指针变量进行定义,以说明该指针变量的性质。 指针变量定义的一般形式为: 存储类型数据类型*标识符; “标识符”就是指针变量名。例如下面语句定义了名字为p和q的两个不同类 型的指针变量: int*p; float*q 标识符前的“*”,表示其后的名字是一个指针变量名。在本例中,指针变 量名是p和q,而不是*p和*q。C艹中,在定义指针变量时,以下形式均为1 法的: int*p;∥*靠左 float*q;∥两边都不靠
C++语言程序设计 第六章 指针 6.1.2指针变量的定义 由于指针变量是一个变量,所以它具有和普通变量一样的属性,即指针变量 也有一定的存储类型、数据类型和使用范围。因此,在使用指针变量之前, 必须对指针变量进行定义,以说明该指针变量的性质。 指针变量定义的一般形式为: 存储类型 数据类型 * 标识符; “标识符”就是指针变量名。例如下面语句定义了名字为p和q的两个不同类 型的指针变量: int *p; float*q; 标识符前的“*” ,表示其后的名字是一个指针变量名。在本例中,指针变 量名是p和q,而不是*p和*q。C++中,在定义指针变量时,以下形式均为合 法的: int* p; // *靠左 float* q; // *两边都不靠
C++语言程序设计 第六章指针 61.3指针变量运算符 有两个与指针变量有关的运算符&和*,下面对它们进行介绍 并说明它们之间的关系 1.取地址运算符: 该运算符表示的是对“&”后面的变量进行取地址运算 2.指针运算符:* 该运算符也叫“取内容运算符”,它后面必须是一个指针变 量。表示的是访问该指针变量所指向的变量,即访问指针所 指向的存储空间中的数据
C++语言程序设计 第六章 指针 6.1.3指针变量运算符 有两个与指针变量有关的运算符&和*,下面对它们进行介绍 并说明它们之间的关系 1. 取地址运算符:& 该运算符表示的是对“&”后面的变量进行取地址运算 2. 指针运算符:* 该运算符也叫“取内容运算符” ,它后面必须是一个指针变 量。表示的是访问该指针变量所指向的变量,即访问指针所 指向的存储空间中的数据