2)指针概念 指针即是内存单元的地址,只不过它是C语言中对 地址的称呼。 在C语言中指针是一种数据类型声明这种类型的 变量将给该变量分配该两个字节的存储空间,用于 存放一个地址量。因此指针类型对象的值是一个内 存地址 一个变量的地址称为该变量的指针即该变量占用 的内存区城的起始地址
6 2) 指针概念 指针即是内存单元的地址, 只不过它是C语言中对 地址的称呼。 在C语言中,指针是一种数据类型,声明这种类型的 变量,将给该变量分配该两个字节的存储空间, 用于 存放一个地址量。 因此指针类型对象的值是一个内 存地址。 一个变量的地址称为该变量的指针,即该变量占用 的内存区域的起始地址
个数组的指针指的是数组存储空间的起始地址, 也即第一个数组元素的地址,数组名代表这个地址 因此,数组名是一个指针型量且是指针常量。例如: main int c10 float s5 i long do; printf(“%p,%p,%p”,C,s,d); 程序运行后的输出可能是: FF8C. FFAO. FFB4
7 一个数组的指针指的是数组存储空间的起始地址, 也即第一个数组元素的地址, 数组名代表这个地址。 因此,数组名是一个指针型量且是指针常量。例如: 程序运行后的输出可能是: FF8C, FFA0, FFB4 main ( ) { int c[10] ; float s[5] ; long d[10] ; printf ( “%p, %p, %p”, c , s , d ) ; }
函数是一段程序程序要在内存中才能执行。因此 函数也有内存地址。函数在內存的存储地址称为函 数指针。函数名代表函数的地址,是一个指针型常 量。例如: void f( void) printf(“helo0”); main f();/调用数* printf(“%p”,f) 该程序运行后输出的函数地址可能是: 020F/这就是f函数的指针* 8
8 函数是一段程序,程序要在内存中才能执行。因此 函数也有内存地址。 函数在内存的存储地址称为函 数指针。函数名代表函数的地址, 是一个指针型常 量。例如: 该程序运行后输出的函数地址可能是: 020F /*这就是f函数的指针*/ void f ( void ) { printf ( “hello” ) ; } main ( ) { f ( ) ; /*调用f函数*/ printf ( “%p”, f ) ; }
10.2指针变量 这是指针变这是指针变量所 针变量。当 的存储类型。指向对象的数据类型。,就称该指 auto、 register为方便叙述,不妨将 于局部量)、§其称为“基类型” 其 extern因此可以放置任何数据类定 变量也具有局型关键字 类型的 局临时和永久特k口心址量,-般形式 为 存储类型数据类型)指针变量名
9 10.2 指针变量 用于存储变量地址的变量称之为指针变量。当 一个指针变量存储了某个变量的地址后, 就称该指 针变量指向那个变量. 1、指针变量的声明(定义) 指针是一种特殊数据类型,与其他数据类型的 变量一样必须先定义后使用。 指针定义的一般形式 为: 存储类型 数据类型 * 指针变量名 该“*”指出其 后的标识符被定 义成指针类型, 用于存放地址量。 这是指针变量本身 的存储类型。可指定 auto、register(仅用 于局部量)、static、 extern。 因此 , 指针 变量也具有局部与全 局、临时和永久特性。 这是指针变量所 指向对象的数据类型。 为方便叙述, 不妨将 其称为“基类型” 。 可以放置任何数据类 型关键字
旦定义了指针变量,便可用它来存放(指向) 与其基类型相同的某个对象的地址。如下面的指针 变量定义: ntp g xp总是用于存放int型对象的地址。换句话说, xp中存储的地址所指向的存储区域中的内容总按int 型数据来解释。 若in型数据为16位,并假定分配给一个int型变 量k的存储区域的首地址为2000,如果执行: xp=&k; 则有:
10 一旦定义了指针变量, 便可用它来存放( 指向 ) 与其基类型相同的某个对象的地址。 如下面的指针 变量定义: int *xp ; xp 总是用于存放 int 型对象的地址。换句话说, xp中存储的地址所指向的存储区域中的内容总按 int 型数据来解释。 若int型数据为16位 , 并假定分配给一个int 型变 量k的存储区域的首地址为2000 ,如果执行: xp = &k ; 则有: