制作:方斌 这种专门用来存放地址的变量就称为指针变量 当我们用指针变量p存储了另一个变量a的地址 后,访问变量a可以是:先获得指针变量p的地 址(2002),从中取出该变量的值1012(即变量a 的地址),然后再通过这个地址去访问它所代 表的存储单元(即访问变量a) 上述情况我们称为变量p指向变量a,即指针变 量p中存放的是变量a的地址
制 作:方 斌 ⚫ 这种专门用来存放地址的变量就称为指针变量。 ⚫ 当我们用指针变量p存储了另一个变量a的地址 后,访问变量a可以是:先获得指针变量p的地 址(2002),从中取出该变量的值1012(即变量a 的地址),然后再通过这个地址去访问它所代 表的存储单元(即访问变量a) ⚫ 上述情况我们称为变量p指向变量a,即指针变 量p中存放的是变量a的地址
制作:方斌 指针变量的用途 ●在C语言中,指针被广泛使用,正因为这个原 因,使得C语言不同于其他的语言 指针和数组、字符串、函数间数据的传递有着 密不可分的联系。 ●指针的使用可以使得程序的代码更简洁,效率 更高。某些场合,使用指针是使得运算进行的 惟一途径。 ●指针若使用不当,概念不清,以至滥用,将降 低程序的可读性,甚至导致系统崩溃
制 作:方 斌 ⚫ 在C语言中,指针被广泛使用,正因为这个原 因,使得C语言不同于其他的语言。 ⚫ 指针和数组、字符串、函数间数据的传递有着 密不可分的联系。 ⚫ 指针的使用可以使得程序的代码更简洁,效率 更高。某些场合,使用指针是使得运算进行的 惟一途径。 ⚫ 指针若使用不当,概念不清,以至滥用,将降 低程序的可读性,甚至导致系统崩溃。 指针变量的用途
制作:方斌 82指针变量的定义和指针变量的基类型 指针变量的定义格式为: 类型名称*指针变量名 如: nt*p1,p2;∥p1,p2可以指向整型变量 char pst;∥post可以指向字符变量 double*px;/lX可以指向 double类型变量 nt*p;仰p定义为指向指针的指针变量
制 作:方 斌 8.2 指针变量的定义和指针变量的基类型 ⚫ 指针变量的定义格式为: 类型名称 *指针变量名; ⚫ 如: int *p1, p2; //p1,p2可以指向整型变量 char *pst; //pst可以指向字符变量 double *px; //px可以指向double类型变量 int **p; //p定义为指向指针的指针变量
制作:方斌 指针变量的基类型 个指针变量中存储的是一个变量在内存中所 占存储单元的首地址。对整型变量而言,它代 表2个字节,对 double类型而言,它代表8个字 节。这就是基类型不同的含义。 基类型的不同将直接导致对指针移动时每次移 动的字节数。例如:int指向inta,即p的 值是变量a所占内存中两个字节中的首地址 此时p+1不是指向变量a的第二个字节,而是 指向&a+2存储单元
制 作:方 斌 指针变量的基类型 ⚫ 一个指针变量中存储的是一个变量在内存中所 占存储单元的首地址。对整型变量而言,它代 表2个字节,对double类型而言,它代表8个字 节。这就是基类型不同的含义。 ⚫ 基类型的不同将直接导致对指针移动时每次移 动的字节数。例如:int *p 指向 int a,即p的 值是变量a所占内存中两个字节中的首地址, 此时p+1不是指向变量a的第二个字节,而是 指向&a+2存储单元
制作:方斌 83指针变量的赋值 ●指针变量是专门用来存储地址的,所以,只要 是合法的地址,都可以赋值给指针变量 1、通过求地址运算符获得地址。例如: int k=1, *p, *q, * px double x=100 p=&k;∥OK q=p;∥)OK pX=&x;∥ror基类型不匹配
制 作:方 斌 8.3 指针变量的赋值 ⚫ 指针变量是专门用来存储地址的,所以,只要 是合法的地址,都可以赋值给指针变量。 1、通过求地址运算符获得地址。例如: int k = 1, *p, *q, *px; double x = 100; p = &k; //OK q = p; //OK px = &x; //Error基类型不匹配