《C语言程序设计》课件——37地址和指针.ppt
9.1地址和指针⒈变量的“直接访问”方式⒉变量的“间接访问”方式⒊“指针”和“指针变量”9.1.1指针概述
1.变量的“直接访问”方式
例如:
shorta=1,b=2;
floatc=3.4,d=5.6;
chare=x,f=y;地址1010指向变量a、1012指向变量b、1014指向变量c等。这种通过变量名或地址访问一个变量的方式称为“直接访问”方式。2.变量的“间接访问”方式
“间接访问”方式就是把一个变量的地址放在另一个变量的存储单元中,如下图所示:这种把地址存放在一个变量中,然后通过先找出地址变量中的值(一个地址),再由此地址找到最终要访问的变量的方法,称为“间接访问”方式。3.指针概念的引出
通过用一个地址变量存储某一普通变量的起始地址,进而指向一个普通变量。可以将它形象地表示为下图所示的逻辑关系。一个变量的地址称为该变量的“指针”。指针的定义与运用是C语言的一大特色。指针可以作为数组的地址,从而使数组的处理变得简洁;可以通过指针传递变量的地址给函数,从而实现调用函数后返回多个值;另外,指针还支持动态内存分配,使处理数值、字符数组的方法更为简单。*凡在源程序中定义的变量,在编译时系统都给它们分配相应的存储单元,每个变量所占的存储单元都有确定的地址。具体的地址是在编译时分配的。(实际上通过变量名访问也就是通过地址访问)*变量pa、pb分别用来存放变量a、b的地址(即a、b)。要得到变量a的值,可以先访问变量pa,得到变量pa的值1010后,再通过地址1010找到它所指向的存储单元中的值。*例如,地址1010是变量a的指针。存放地址的变量叫“指针变量”。从上图可以看到,pa是指针变量,因为pa中存放着变量a的地址,称为pa指向变量a,通过变量pa就能找到a的值。请区分“指针”和“指针变量”这两个概念,指针是一个地址,而指针变量是存放地址的变量。*指针的定义与运用是C语言的一大特色。指针可以作为数组的地址,从而使数组的处理变得简洁;可以通过指针传递变量的地址给函数,从而实现调用函数后返回多个值;另外,指针还支持动态内存分配,使处理数值、字符数组的方法更为简单。*凡在源程序中定义的变量,在编译时系统都给它们分配相应的存储单元,每个变量所占的存储单元都有确定的地址。具体的地址是在编译时分配的。(实际上通过变量名访问也就是通过地址访问)*变量pa、pb分别用来存放变量a、b的地址(即a、b)。要得到变量a的值,可以先访问变量pa,得到变量pa的值1010后,再通过地址1010找到它所指向的存储单元中的值。*例如,地址1010是变量a的指针。存放地址的变量叫“指针变量”。从上图可以看到,pa是指针变量,因为pa中存放着变量a的地址,称为pa指向变量a,通过变量pa就能找到a的值。请区分“指针”和“指针变量”这两个概念,指针是一个地址,而指针变量是存放地址的变量。*