人民邮电出版3 第七章指针
人民邮电出版社 第七章 指 针
人民邮电出版3 71指针的概念 72指针操作符和指针表达式 73指针和数组 74字符指针与字符数组 75指针数组 76指向指针的指针
人民邮电出版社 7.1 指针的概念 7.2 指针操作符和指针表达式 7.3 指针和数组 7.4 字符指针与字符数组 7.5 指针数组 7.6 指向指针的指针
人民邮电出版3 71指针的概念 711指针和指针变量 定义一个变量就意味着在内存中给它分配一定的 存储单元,以备存储这个变量的数值。 指针变量是一种特 殊的变量,它在内存中 婴人保存的不是一般的数值, 而是另一个变量的地址。 图71指针概念示意图
人民邮电出版社 7.1 指针的概念 7.1.1 指针和指针变量 定义一个变量就意味着在内存中给它分配一定的 存储单元,以备存储这个变量的数值。 图7.1 指针概念示意图 指针变量是一种特 殊的变量,它在内存中 保存的不是一般的数值, 而是另一个变量的地址
人民邮电出版3 712指针变量说明 像其它任何一种变量一样,在C语言中使用 指针变量之前,也必须先要用说明语句定义指针 变量。 指针变量定义语句的一般格式为 type 兴 var name 其中tpe可以是任何c或c++的数据类型,它 表示指针所指向的数据的类型; var name是指针变量名; 符号“*”是定义指针变量的标志
人民邮电出版社 7.1.2 指针变量说明 像其它任何一种变量一样,在C语言中使用 指针变量之前,也必须先要用说明语句定义指针 变量。 指针变量定义语句的一般格式为 type *var_name; 其中type可以是任何c或c++的数据类型,它 表示指针所指向的数据的类型; var_name是指针变量名; 符号“*”是定义指针变量的标志
人民邮电出版3 72指针操作符和指针表达式 721指针操作符 C语言中,对指针变量的操作,主要有两个基 本运算(操作)符:“&”和“”。现分述如下 1.操作符& 操作符&是一个单目操作符,即它只要求一个 操作数。 2操作符 操作符*也是一个单目操作符,它返回的是操 作数(指针变量)所指的地址的内容
人民邮电出版社 7.2 指针操作符和指针表达式 7.2.1 指针操作符 C语言中,对指针变量的操作,主要有两个基 本运算(操作)符:“&”和“*” 。现分述如下 。 1. 操作符 & 操作符&是一个单目操作符,即它只要求一个 操作数。 2. 操作符 * 操作符*也是一个单目操作符,它返回的是操 作数(指针变量)所指的地址的内容
人民邮电出版3 722指针变量的初始化 与其它变量一样,指针变量也可以初始 化。指针变量初始化的一般形式为: 数据类型*指针变量名=内存地址
人民邮电出版社 7.2.2 指针变量的初始化 与其它变量一样,指针变量也可以初始 化。指针变量初始化的一般形式为: 数据类型 *指针变量名=内存地址
人民邮电出版3 723指针运算与指针表达式 指针变量是可以运算的。包含有指针的表达 式,也是遵循一般表达式的规则的。但是,指针 运算有它自己的特殊的地方。 1指针赋值 指针赋值就是将一个指针(地址常数或指针 变量的值)赋给另一个指针变量。将其它任何类 婴八型的数据赋给指针变量都是错误的
人民邮电出版社 7.2.3 指针运算与指针表达式 指针变量是可以运算的。包含有指针的表达 式,也是遵循一般表达式的规则的。但是,指针 运算有它自己的特殊的地方。 1. 指针赋值 指针赋值就是将一个指针(地址常数或指针 变量的值)赋给另一个指针变量。将其它任何类 型的数据赋给指针变量都是错误的
人民邮电出版3 2指针的算术运算 指针有两种算术运算:加法和减法。 (1)加一和减一运算 最常见的指针算术运算是指针的加一运算和减 运算。 △(2)向指针加减任意整数 指针不仅仅能进行加一和减一运算,也可以向 指针加一个任意数或从指针减去一个任意整数
人民邮电出版社 2. 指针的算术运算 指针有两种算术运算:加法和减法。 (1) 加一和减一运算 最常见的指针算术运算是指针的加一运算和减 一运算。 (2) 向指针加减任意整数 指针不仅仅能进行加一和减一运算,也可以向 指针加一个任意数或从指针减去一个任意整数
人民邮电出版3 3.指针的比较运算 两个指针变量可以通过关系操作符进行比 较运算
人民邮电出版社 3. 指针的比较运算 两个指针变量可以通过关系操作符进行比 较运算
人民邮电出版3 4.指针运算的优先级 在指针的应用中,经常会出现指针加一(减一) 运算与*运算相结合的情况。例如表达式(其中p为指 针变量): 冰p++ 米(p+) 米(++P) 这里需要注意的是: ①+,一和*是同等优先级运算和自右向左结合的原 ②++p与p++,-p与p-是不同的
人民邮电出版社 4. 指针运算的优先级 在指针的应用中,经常会出现指针加一(减一) 运算与*运算相结合的情况。例如表达式(其中p为指 针变量): *p++ *(p++) *(++P) 这里需要注意的是: ① ++,--和*是同等优先级运算和自右向左结合的原 则; ② ++p与p++,--p与p--是不同的