第10章 指针 7
第10章 指针
指针是C语言中一个十分重要的概念。 指针的引入极大地丰富了C语言的功能, 利用指针可以直接对内存中各种不同类型 的数据进行快速访问,可以有效地表示、 访问复杂的数据结构,可以方便灵活地在 函数间传递数据,可以提高某些程序的执 行效率,实现对底层硬件的访问。 7
指针是C语言中一个十分重要的概念。 指针的引入极大地丰富了C语言的功能, 利用指针可以直接对内存中各种不同类型 的数据进行快速访问,可以有效地表示、 访问复杂的数据结构,可以方便灵活地在 函数间传递数据,可以提高某些程序的执 行效率,实现对底层硬件的访问
10.1指针的基本概念 102指针变量 103数组的指针 104函数的指针和返回指针值的函数 10.5指针数组与指向指针的指针 7
10.1 指针的基本概念 10.2 指 针 变 量 10.3 数组的指针 10.4 函数的指针和返回指针值的函数 10.5 指针数组与指向指针的指针
101指针的基本概念 10.1.1变量的直接访问和间接访问 变量是程序中数据所占存储单元的符号。程 序在编译时,系统会根据变量定义的数据类型为 其分配相应的内存单元,用于存放变量的具体数 据。不同类型的变量所分配的内存单元的长度是 不一样的。通常,将变量所分配内存单元的首地买 址(即变量所分配的低字节地址)称为变量的地 址。另外,系统还产生一张“变量名、地址对应 关系表”,用来记录变量名与地址之间的关系, 每一个变量名对应一个地址。在程序中使用变量 ,就是通过“变量名、地址对应关系表”所记录 的变量地址来访问相应的内存单元,变量的值就 是内存单元的内容
10.1 指针的基本概念 10.1.1 变量的直接访问和间接访问 变量是程序中数据所占存储单元的符号。程 序在编译时,系统会根据变量定义的数据类型为 其分配相应的内存单元,用于存放变量的具体数 据。不同类型的变量所分配的内存单元的长度是 不一样的。通常,将变量所分配内存单元的首地 址(即变量所分配的低字节地址)称为变量的地 址。另外,系统还产生一张“变量名、地址对应 关系表” ,用来记录变量名与地址之间的关系, 每一个变量名对应一个地址。在程序中使用变量 ,就是通过“变量名、地址对应关系表”所记录 的变量地址来访问相应的内存单元,变量的值就 是内存单元的内容
通过变量地址可以找到该变量所占的存储单元, 因此可以说变量地址“指向”变量的存储单元。这 种直接按照变量地址访问变量的方式称为“直接访 问”,如图102所。 685_ 4000H bF---285-1400X 5000H p=-±0 5002H 7 图102变量访问方式示意图
通过变量地址可以找到该变量所占的存储单元, 因此可以说变量地址“指向”变量的存储单元。这 种直接按照变量地址访问变量的方式称为“直接访 问” ,如图10.2所示内存 。 …… a 685 4000H b 785 4002H …… p 4000H …… 5000H 5002H 图10.2 变量访问方式示意图