清华大学出版社 TSINGHUA UNIVERSITY PRESS 目录 101指针的基本概念 10.2指向变量的指针变量 10.3指向数组的指针变量 104指向函数的指针变量和指针型函数 10.5指针型数组和指向指针的指针变量 10.6指向结构体的指针变量 107动态存储分配 返回本章首页
1 返回本章首页 目录 10.1 指针的基本概念 10.2 指向变量的指针变量 10.3 指向数组的指针变量 10.4 指向函数的指针变量和指针型函数 10.5 指针型数组和指向指针的指针变量 10.6 指向结构体的指针变量 10.7 动态存储分配
清华大学出版社 TSINGHUA UNIVERSITY PRESS 101指针的基本概念 根据内存单元的地址就可以找到所需的内存单元,通常也把 这个地址称为指针。内存单元的地址和内存单元的内容是两个不 同的概念,单元的地址即为指针,其中存放的数据才是该单元的 内容。 用一个变量来存放指针,这种变量称为指针变量。因此, 个指针变量的值就是某个内存单元的地址或称为某内存单元的指 针。为了避免混淆,我们约定:指针是指地址,是常量;指针变 量是指取值为地址的变量 种数据类型或数据结构往往都占有一组连续的内存单元。 指针是一个数据结构的首地址,它是指向一个数据结构的。 返回本章首页
2 返回本章首页 10.1 指针的基本概念 根据内存单元的地址就可以找到所需的内存单元,通常也把 这个地址称为指针。内存单元的地址和内存单元的内容是两个不 同的概念,单元的地址即为指针,其中存放的数据才是该单元的 内容。 用一个变量来存放指针,这种变量称为指针变量。因此,一 个指针变量的值就是某个内存单元的地址或称为某内存单元的指 针。为了避免混淆,我们约定:指针是指地址,是常量;指针变 量是指取值为地址的变量。 一种数据类型或数据结构往往都占有一组连续的内存单元。 指针是一个数据结构的首地址,它是指向一个数据结构的
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 变量的指针就是变量的地址。存放变量地址的变量是指针变 量 1.指针变量的定义 对指向变量的指针变量的定义包括三个内容 1)指针类型声明符,即定义变量为一个指针变量; 2)指针变量名; 3)指针所指向的变量的数据类型。 指针变量定义的一般形式为: 类型声明符*指针变量名; 其中,*表示这是一个指针变量,类型声明符表示指针变量所 指向的变量的数据类型。 应该注意的是,一个指针变量只能指向同类型的变量。 返回本章首页
3 返回本章首页 10.2 指向变量的指针变量 变量的指针就是变量的地址。存放变量地址的变量是指针变 量。 1. 指针变量的定义 对指向变量的指针变量的定义包括三个内容: 1)指针类型声明符,即定义变量为一个指针变量; 2)指针变量名; 3)指针所指向的变量的数据类型。 指针变量定义的一般形式为: 类型声明符 *指针变量名; 其中,*表示这是一个指针变量,类型声明符表示指针变量所 指向的变量的数据类型。 应该注意的是,一个指针变量只能指向同类型的变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 2.指针运算符 用户并不知道变量地址的具体值。 1)取地址运算符& 取地址运算符&是单目运算符,其结合性为自右至左,其功能 是取变量的地址。 (1)地址运算符&的一般形式为: &变量名; (2)指针变量的赋值方法 ①指针变量初始化:定义指针变量的同时对其进行初始化。 ②变量地址赋指针变量:把一个变量的地址赋给指向相同数 据类型的指针变量。 ③指针变量间相互赋值:把一个指针变量的值赋给指向相同 类型变量的另一个指针变量。 注意:不允许把一个数赋给指针变量。 返回本章首页
4 返回本章首页 10.2 指向变量的指针变量 2. 指针运算符 用户并不知道变量地址的具体值。 1)取地址运算符& 取地址运算符&是单目运算符,其结合性为自右至左,其功能 是取变量的地址。 (1)地址运算符&的一般形式为: &变量名; (2)指针变量的赋值方法 ①指针变量初始化:定义指针变量的同时对其进行初始化。 ②变量地址赋指针变量:把一个变量的地址赋给指向相同数 据类型的指针变量。 ③指针变量间相互赋值:把一个指针变量的值赋给指向相同 类型变量的另一个指针变量。 注意:不允许把一个数赋给指针变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 2.指针运算符 2)取内容运算符* 取内容运算符*是单目运算符,结合性为自右至左,表示指针 变量所指的变量。 (1)可以通过指针变量间接访问变量 类型。而表达式中出现的则是一个运算符用以表示指针变量所指 的变量。 【例10_1】指针变量初始化。 include<stdio. h> void maino t int a=5, p=&a; Press any key to continue printf (%dIn,p); 返回本章首页
5 返回本章首页 10.2 指向变量的指针变量 2. 指针运算符 2)取内容运算符* 取内容运算符*是单目运算符,结合性为自右至左,表示指针 变量所指的变量。 (1)可以通过指针变量间接访问变量 在指针变量定义中,*是类型声明符,表示其后的变量是指针 类型。而表达式中出现的*则是一个运算符用以表示指针变量所指 的变量。 【例10_1】指针变量初始化。 #include<stdio.h> void main() { int a=5,*p=&a; printf ("%d\n",*p); }