C++ 第4章 指针和引用
时间:2026-01-24
时间:2026-01-24
C++ 第4章 指针和引用
第四章 指针和引用4.1.1 指针的概念 什么是指针? 【什么是指针 】存放地址的变量称为指针变量。 存放地址的变量称为指针变量。
地址是一个值,可以存放在变量中,存放地址的变量称为指针变量。 地址是一个值,可以存放在变量中,存放地址的变量称为指针变量。一 个指针变量里面所存放的内容一定是另一个变量在内存中的地址。 个指针变量里面所存放的内容一定是另一个变量在内存中的地址。拥有 这个地址的变量称为该指针变量所指向的变量。 这个地址的变量称为该指针变量所指向的变量。 “指针”表达了两层含义:一个地址以及存储于该地址处的数据的类型 指针”表达了两层含义: 指针
C++ 第4章 指针和引用
4.1.1 指针的概念【指针常量和指针变量 】空指针的地址值0可以用符号常量 表示。 空指针的地址值 可以用符号常量NULL表示。NULL(或0)是C++中经常用到 可以用符号常量 表示 或 是 中经常用到 的指针常量。 的指针常量。
指针是一个变量,必须先声明,后使用。其声明的一般形式如下: 指针是一个变量,必须先声明,后使用。其声明的一般形式如下: 数据类型 *标识符; 标识符; 标识符给出的是指针变量名。 标识符给出的是指针变量名。 数据类型可以是C++语 语 数据类型可以是 言中任一合法的类型。 言中任一合法的类型。 “*”号说明其后的变量是一个指针变量。 号说明其后的变量是一个指针变量。 号说明其后的变量是一个指针变量
列出的数据类型并不是指针变量本身的类型, 列出的数据类型并不是指针变量本身的类型,而是指针用于保存的地址值 中存储的变量的数据类型,即指针所指向变量的数据类型。 中存储的变量的数据类型,即指针所指向变量的数据类型。
C++ 第4章 指针和引用
任一指针变量本身数据值的类型都是unsigned 任一指针变量本身数据值的类型都是unsigned long int 比如: 比如: int *p1; double *p2;
说明:声明了 、 两个指针 其中p1指向 两个指针。 说明:声明了p1、p2两个指针。其中 指向 int型变量,p2指向 型变量, 指向 指向double型变量。 型变量。 型变量 型变量
指针也可以和其他变量同时声明 比如: int i,*p1; 比如: 说明:声明了一个int型变量 和指针 。 型变量i和指针 说明:声明了一个 型变量 和指针p1。 注 声明了一个指针后,在使用前必须首先给它赋一个合法的值。否则, 声明了一个指针后,在使用前必须首先给它赋一个合法的值。否则, 程序中对指针的使用就有可能导致系统崩溃。 程序中对指针的使用就有可能导致系统崩溃。
与其他变量一样,我们可以在声明指针的同时,通过初始化来给指针赋值。 与其他变量一样,我
们可以在声明指针的同时,通过初始化来给指针赋值。 比如: 比如: int i,*p1=&i; int *p2=0; 说明: 个声明就将指针p1的值初始化为变 说明:第1个声明就将指针 的值初始化为变 个声明就将指针 的内存地址; 个声明将指针p2的值初 量i的内存地址;第2个声明将指针 的值初 的内存地址 个声明将指针 始化为0。值为0的指针叫空指针 的指针叫空指针。 始化为 。值为 的指针叫空指针。
C++ 第4章 指针和引用
4.1.1 指针的概念变量 可施于指针上的操作 地址
&称为取址操作,是一元操作符,作用于一个操作数,功能是取操作数的地址 称为取址操作,是一元操作符,作用于一个操作数, 称为取址操作…
(1)两个特殊的指针操作符是 和*。 两个特殊的指针操作符是&和 。 两个特殊的指针操作符是 Y 0x1007
29
int x=29;
point
0x100b…
0x100f
int *point=&x; int y=*point;X取出X 取出X的地址
0x100f
29
C++ 第4章 指针和引用
4.1.1 指针的概念*称为取值操作,也是一元操作符,操作数只能是指针变量,功 称为取值操作,也是一元操作符,操作数只能是指针变量, 称为取值操作 能是返回指针所指向的变量的值。 能是返回指针所指向的变量的值。
每个变量在内存中都有一个固定的地址,而指针中保存的就是变量的地 每个变量在内存中都有一个固定的地址, 址值。如果声明了一个指针,并使其值为某个变量的地址, 址值。如果声明了一个指针,并使其值为某个变量的地址,则可以通过 这个指针间接地访问在这个地址中存储的值。 这个指针间接地访问在这个地址中存储的值。
C++ 第4章 指针和引用
4.1.1 指针的概念比如: int i=1,*p=&i; 比如: cout<<*p; 比如: int i,*p=&i; 比如: *p=2; *p=2;cout<<*p; 例如 int *p; *p=2; *p=2; 将输出变量i 的值1 将输出变量i 的值1
输出2 输出2
//错误,指针P //错误,指针P没有赋值 错误
说明:没有明确地给指针赋一个地址值,因而其值是随机的。 说明:没有明确地给指针赋一个地址值,因而其值是随机的。 注 在使用指针前,必须首先给它赋一个合法的值。通过“ ” 在使用指针前,必须首先给它赋一个合法的值。通过“*”运算访 问目的数据的过程也称为“间接寻址”过程。 问目的数据的过程也称为“间接寻址”过程。
C++ 第4章 指针和引用
4.1.1 指针的概念【例4.1】 简单指针变量。 】 简单 …… 此处隐藏:3782字,全部文档内容请下载后查看。喜欢就下载吧 ……