制作:方斌 C语言程序设 计教程 郧阳师范高等专科学校 计算机科学系 方城制作
制 作:方 斌 C语言程序设 计教程 郧阳师范高等专科学校 计算机科学系 方 斌 制作
制作:方斌 81变量的地址和指针 变量:代表“内存中的某个存储单元” 内存地址—内存中存储单元的编号 (1)计算机硬件系统的内存储器中,拥有大量的存储 单元(容量以1字节为单位)。为了方便管理,必须 为每一个存储单元编号,这个编号就是存储单元的 “地址”。每个存储单元都有一个惟一的地址 (2)在地址所标识的存储单元中存放数据。 注意:内存单元的地址与内存单元中的数据是两个完 全不同的概念
制 作:方 斌 8.1 变量的地址和指针 ⚫ 变量:代表“内存中的某个存储单元” ⚫ 内存地址──内存中存储单元的编号 (1)计算机硬件系统的内存储器中,拥有大量的存储 单元(容量以1字节为单位)。为了方便管理,必须 为每一个存储单元编号,这个编号就是存储单元的 “地址”。每个存储单元都有一个惟一的地址。 (2)在地址所标识的存储单元中存放数据。 ⚫ 注意:内存单元的地址与内存单元中的数据是两个完 全不同的概念
制作:方斌 ●若在程序中定义了一个变量,C语言编译器就 会根据定义的变量类型,为其分配一定字节数 的存储单元。如定义: inta;分配2个字节的内存空间 char ch;为ch分配1个字节的内存空间 double x;为x分配8个字节的内存空间 ●注意的是,C编译器为变量分配的内存空间是 连续的
制 作:方 斌 ⚫ 若在程序中定义了一个变量,C语言编译器就 会根据定义的变量类型,为其分配一定字节数 的存储单元。如定义: int a; 分配2个字节的内存空间 char ch; 为ch分配1个字节的内存空间 double x; 为x分配8个字节的内存空间 ⚫ 注意的是,C编译器为变量分配的内存空间是 连续的
制作:方斌 例如有定义: float y C编译器就为变量y分配4个连续字节的内存空 间。如图所示 内存 内存的地址120112021203120412051206 如上图所示,变量y的地址就为它所占用的4个字节内 存单元的首地址,即变量y的地址为1202
制 作:方 斌 ⚫ 例如有定义: float y; C编译器就为变量y分配4个连续字节的内存空 间。如图所示 1201 1202 1203 1204 1205 1206 y 内存 内存的地址 如上图所示,变量y的地址就为它所占用的4个字节内 存单元的首地址,即变量y的地址为1202
制作:方斌 变量地址——系统分配给变量的内存单元的起始地址 一般情况下,程序中只需通过访问变量名来存取变量 的值,这种存取方法称为“间接存取”。每个变量与 具体地址的联系是由C编译系统来完成的 ●在编译系统中,对变量的存取实际上是对它所占据的 存储单元进行操作,即对变量的地址进行操作,这种 按变量地址进行访问变量的方法称为“直接存取” ●假设有这样一个程序:
制 作:方 斌 ⚫ 变量地址──系统分配给变量的内存单元的起始地址 ⚫ 一般情况下,程序中只需通过访问变量名来存取变量 的值,这种存取方法称为“间接存取”。每个变量与 具体地址的联系是由C编译系统来完成的。 ⚫ 在编译系统中,对变量的存取实际上是对它所占据的 存储单元进行操作,即对变量的地址进行操作,这种 按变量地址进行访问变量的方法称为“直接存取” ⚫ 假设有这样一个程序: