第6章指针与字符串 H char* pp[,∥数组 puFfer是用来保存5个指向 char型变量的指针的指针型变量数组 Ⅴoid* pAddress: / pAddress是一个保存内存地址的指 针型变量,该内存地址中保存的数据 /类型无须知道 void*型指针是很特殊的一种指针,它不像i foat*等指针那样,指向的内存单元中保存的是具体的 种数据类型的变量,Vod*只是一个地址,这个地址 中保存的可能是int型变量的起始地址,也可能是 float 型变量的起始地址,也可能什么都不是
第6章 指针与字符串 char*ppBuffer[5]; //数组ppBuffer是用来保存5个指向 char型变量的指针的指针型变量数组 void*pAddress; //pAddress是一个保存内存地址的指 针型变量,该内存地址中保存的数据 //类型无须知道 void*型指针是很特殊的一种指针,它不像int*、 float*等指针那样,指向的内存单元中保存的是具体的 一种数据类型的变量,void*只是一个地址,这个地址 中保存的可能是int型变量的起始地址,也可能是f1oat 型变量的起始地址,也可能什么都不是
第6章指针与字符串 H 声明指针型变量时,“*”前后可以加空格,也可 以不加,这完全取决于程序员的习惯 尽管大多数指针变量类型同其对应的普通数据类 型之间表面上只差一个“*”号,但它们之间的关系相 当特殊。必须牢记这样的事实:指针型变量也是变量, 指针型变量保存的是地址值,这个值实际上就是一个 有特殊意义的整数,称为指针。 C++语言中定义了一个符号常数NULL,用来代表 空指针值。所谓空指针值是人为规定的一个数值,用 来表示“无效”的指针值。在 Visualc++中,NULL被 定义为0
第6章 指针与字符串 声明指针型变量时, “*”前后可以加空格,也可 以不加,这完全取决于程序员的习惯。 尽管大多数指针变量类型同其对应的普通数据类 型之间表面上只差一个“*”号,但它们之间的关系相 当特殊。必须牢记这样的事实:指针型变量也是变量, 指针型变量保存的是地址值,这个值实际上就是一个 有特殊意义的整数,称为指针。 C++语言中定义了一个符号常数NULL,用来代表 空指针值。所谓空指针值是人为规定的一个数值,用 来表示“无效”的指针值。在VisualC++中,NULL被 定义为0
第6章指针与字符串 H 622指针的基本操作 与指针有关的基本运算符有以下两个 l)&变量名。“&〃为取地址运算符,用来获取变 量的首地址。 (2)*指针变量名。“*”为指向运算符,用来获取 指针变量所指向变量的值。 “&"和“*”运算符都是单目运算符,其优先级高 于所有双目运算符,采用从右到左的结合性
第6章 指针与字符串 6.2.2 指针的基本操作 与指针有关的基本运算符有以下两个。 (1)&变量名。 “&”为取地址运算符,用来获取变 量的首地址。 (2)*指针变量名。 “*”为指向运算符,用来获取 指针变量所指向变量的值。 “&"和“*”运算符都是单目运算符,其优先级高 于所有双目运算符,采用从右到左的结合性
第6章指针与字符串 H 例如: inti=5,j,* phint;∥定义整型变量i、j;同时定义整型指 针变量 phint phint=&i:/.的指针(即首地址)赋给 phint,使 ponti指向i phint /将 phint)所指变量的值(5)赋给变量j
第6章 指针与字符串 例如: inti=5,j, *phint; //定义整型变量i、j;同时定义整型指 针变量phint phint=&i://将i的指针(即首地址)赋给phint,使phnti指向i j=*phint; //将phint所指变量i的值(5)赋给变量j
第6章指针与字符串 H 说明 ①指针变量是有类型的。要使指针变量 phint存放 整型变量i的地址, phint也必须定义为整型指针变量, 否则编译时将出错。 ②要注意第1句和第3句中* phint的区别:第1句是 指针变量定义语句,其中的“*”表示 phint是一个指针 类型变量;第3句中的“*”表示取出指针变量 phint的 值(即 phint所指内存单元中的内容)
第6章 指针与字符串 说明: ①指针变量是有类型的。要使指针变量phint存放 整型变量i的地址,phint也必须定义为整型指针变量, 否则编译时将出错。 ②要注意第1句和第3句中*phint的区别:第1句是 指针变量定义语句,其中的“*”表示phint是一个指针 类型变量;第3句中的“*”表示取出指针变量phint的 值(即phint所指内存单元中的内容)