第六章指针
第六章 指针
内容 ■地址和指针的概念 ■ 变量的指针和指向变量的指针变量 ■数组与指针 ■字符串与指针 ■执行函数的指针 ■返回指针值的函数 ■指针数组和指向指针的指针 ■有关指针的数据类型和指针运算的小节
内容 ◼ 地址和指针的概念 ◼ 变量的指针和指向变量的指针变量 ◼ 数组与指针 ◼ 字符串与指针 ◼ 执行函数的指针 ◼ 返回指针值的函数 ◼ 指针数组和指向指针的指针 ◼ 有关指针的数据类型和指针运算的小节
(1.1)地址和指针的概念
(1.1)地址和指针的概念
地址和指针的概念(1/3) 为了说清楚什么是指针,必须弄清楚数据在内存中是如 何存储的,又是如何读取的。 如果在程序中定义了一个变量,在编译时就给这个变量 分配内存单元。系统根据程序中定义的变量类型,分配 定长度的空间。例如,一般微机使用的C系统为整型 分配4个字节,对实型变量分配4个字节,对字符型变量 分配1个字节。 内存区的每一个字节有一个编号,这就是“地址”。它 相当于旅馆中的房间号。在地址所标志的内存单元中存 放数据,这相当于旅馆中各个房间中居住旅客一样
地址和指针的概念(1/3) 为了说清楚什么是指针,必须弄清楚数据在内存中是如 何存储的,又是如何读取的。 如果在程序中定义了一个变量,在编译时就给这个变量 分配内存单元。系统根据程序中定义的变量类型,分配 一定长度的空间。例如,一般微机使用的C系统为整型 分配4个字节,对实型变量分配4个字节,对字符型变量 分配1个字节。 内存区的每一个字节有一个编号,这就是“地址”。它 相当于旅馆中的房间号。在地址所标志的内存单元中存 放数据,这相当于旅馆中各个房间中居住旅客一样
地址和指针的概念(2/3) 请务必弄清楚一个内 存单元的地址与内存 内存用户数据区 单元的内容这两个概 念的区别。 假设程序已定义了3个 2000 3 变量1 2002 6 变量j 短整型变量、j、k, 2004 9 变量k 编译时系统分配2000 和2001两个字节给变 3010 2000 变量i_pointer 量i,2002,2003字节 给i,2004, 2005给k。 如图所示:
地址和指针的概念(2/3) 请务必弄清楚一个内 存单元的地址与内存 单元的内容这两个概 念的区别。 假设程序已定义了3个 短整型变量i、j、k, 编译时系统分配2000 和2001两个字节给变 量i,2002,2003字节 给j,2004,2005给k。 如图所示: