第6章指针 6,1指针的桃金 6,2变量5指针 6.3数组与指针 64字特串与指针 6,5画数与指针 6,6返回指针值的盖数 67指针煞组和指向指针的指针 6,8有关指针的数据美型和指针运算的小结 *6,9引用
第6章 指针 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 6.5 函数与指针 6.6 返回指针值的函数 6.7 指针数组和指向指针的指针 6.8 有关指针的数据类型和指针运算的小结 *6.9 引用
6.1指针的橇惫 C++程序设计中使用指针可以: 使程序简洁、紧凑、高效 -有效地表示复杂的数据结构 动态分配内存 - -得到多于一个的函数返回值
6.1 指针的概念 C++程序设计中使用指针可以: –使程序简洁、紧凑、高效 –有效地表示复杂的数据结构 –动态分配内存 –得到多于一个的函数返回值
6.1指针的桡念 变量与地址: 内存中每个字节有一个编号-地址 内存 0 程序中: int 1; 2000 2001 float k; 2002 编译或函数调用时为其分配内存单元 2003 2005 变量是对程序中数据 存储空间的抽象
6.1 指针的概念 变量与地址: 程序中: int i; float k; 内存中每个字节有一个编号-地址 . . 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象
6.1指针的福念 指针与指针变量: 指针:一个变量的地址。 指针变量:专门存放变量地址的变量。 指针 2000 整型变量i 2001 10 变量的地址 变量的内容 2002 2003 2004 变量i pointer )005 Aa△a 指针变量 变量地址(指针 指向 地址存入 变量 指针变量 变量值
. . 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 6.1 指针的概念 指针与指针变量: 指针:一个变量的地址。 指针变量:专门存放变量地址的变量。 2000 指针 指针变量 变量的地址 变量的内容 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量
6.1指针的梳念 直接访问与间接访问: 直接访问:按变量地址存取变量值。 间接访问: 通过存放变量地址的变量去访问变量。 例 i=3, 直接访问 2000 整型变量i 2001 20 2002 2003 2004 变量i pointer 2005 2006 指针变量 2006 例 *1 pointer=20: 间接访问
6.1 指针的概念 直接访问与间接访问: 直接访问:按变量地址存取变量值。 间接访问:通过存放变量地址的变量去访问变量。 例 i=3; 直接访问 指针变量 . . 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 例 *i_pointer=20; 间接访问 20
6.2变量写指针 指针变量是一种特殊的变量。用它来指 向另一个变量。 为了表示指针变量和它所指向的变量之 间的联系,用“*”符号表示指向。 例如:ipointer /指针变量 *i_pointer //i pointer所指向的变量 下面两个语句作用相同: ①i=3; i pointer *i pointer ②*i_pointer=-3; 2000 3 2000
6.2 变量与指针 指针变量是一种特殊的变量。用它来指 向另一个变量。 为了表示指针变量和它所指向的变量之 间的联系,用“*”符号表示指向。 例如:i_pointer //指针变量 *i_pointer //i_pointer所指向的变量 下面两个语句作用相同: ① i=3; ② *i_pointer=3;
6.2变量乌指针 一、定义指针变量 一般形式: 基类型*指针变量名; 例如: int i,j; int *pointer_1,*pointer2; float *pointer_3; char *pointer_4; 怎样使一个指针变量指向另一个变量呢? 只需要把被指向的变量的地址赋给指针变量即 可
6.2 变量与指针 一、定义指针变量 一般形式: 基类型 *指针变量名; 例如: int i,j; int *pointer_1, *pointer_2; float *pointer_3; char *pointer_4; 怎样使一个指针变量指向另一个变量呢? 只需要把被指向的变量的地址赋给指针变量即 可
6.2变量与指针 例如: pointer 1 pointer1=&i; pointer_2=&j; pointer 2 注意: ()不能用一个整数给一个指针变量赋初值。 例如: int *pointer 1=2000; /错误 int i; 正确 int *pointer 1=&i; (2)在定义指针变量时必须指定基类型。 (3)在使用指针变量前,必须先指定其值
6.2 变量与指针 例如: pointer_1=&i; pointer_2=&j; 注意: (1)不能用一个整数给一个指针变量赋初值。 例如: int *pointer_1=2000; //错误 int i; int *pointer_1=&i; (2) 在定义指针变量时必须指定基类型。 (3) 在使用指针变量前,必须先指定其值。 正确
6.2变量与指针 二、引用指针变量 &与*运算符: 取地址运算符&:取变量的地址。 指针运算符*(或称间接访问运算符):取指 针所指向变量的内容。 例如: &a为变量a的地址, *p为指针变量p所指向的存储单元。 “&”和“*”优先级别相同,结合方向自右至 左
6.2 变量与指针 二、引用指针变量 &与*运算符: 取地址运算符 &: 取变量的地址。 指针运算符* (或称间接访问运算符) : 取指 针所指向变量的内容。 例如: &a为变量a的地址, *p为指针变量p所指向的存储单元。 “&”和“*” 优先级别相同,结合方向自右至 左
6.2变量与指针 例:通过指针变量访问整型变量。 #include using namespace std; int main() Kint a,b; int *pointer_1,*pointer_2; a=100;b=10: pointer_1=&a; pointer_2=&b; cout<<a<<""<<b<<endlj cout<<*pointer_1<<""<<*pointer_2<<endl return O; }
6.2 变量与指针 例:通过指针变量访问整型变量。 #include using namespace std; int main( ) {int a,b; int *pointer_1,*pointer_2; a=100;b=10; pointer_1=&a; pointer_2=&b; cout<<a<<″ ″<<b<<endl; cout<<*pointer_1<<″ ″<<*pointer_2<<endl; return 0; }