二级C语言考试辅导教程第六章:指针[5]

二级C语言考试辅导教程第六章:指针[5],第1张

二级C语言考试辅导教程第六章:指针[5],第2张

从以上几点可以看出字符串指针变量和字符数组的区别,使用指针变量更方便。如前所述,在获得明确的地址之前使用指针变量是很危险的,而且很容易导致错误。但是可以直接给指针变量赋值。因为C系统在给指针变量赋值的时候要给一个明确的地址。因此,
char * PS = " clanage ";
或char * ps
ps="C语言";都是合法的。
函数指针变量

在C语言中,一个函数总是占用一个连续的内存区域,函数名是该函数占用的内存区域的第一个地址。我们可以将函数的第一个地址(或入口地址)赋给一个指针变量,这样指针变量就指向了函数。然后就可以通过指针变量找到并调用这个函数了。我们把这个指向一个函数的指针变量叫做“函数指针变量”。来源:www.examda.com
函数指针变量定义的一般形式是:
类型说明符(*指针变量名)();
其中“类型说明符”指示被引用函数的返回值的类型。“(*指针变量名称)”表示“*”后的变量是定义的指针变量。最后一个空括号表示指针变量引用了一个函数。
例如:int(* pf)();
表示pf是指向函数入口的指针变量,这个函数的返回值(函数值)是整数。
这里有一个例子来说明以指针的形式调用函数的方法。
int max(int a,int b){
if(a>b)返回a;
else返回b;
}
main(){
int max(int a,int b);
int(* pmax)();
int x,y,z;
pmax = max;
printf("输入两个数字:\ n ");
scanf("%d%d ",&x,& y);
z=(*pmax)(x,y);
printf("maxmum=%d ",z);
}
从上面的程序可以看出,以函数指针变量的形式调用函数的步骤如下:1 .先定义一个函数指针变量,比如后一个程序第9行的int(* pmax)();将pmax定义为函数指针变量。资料来源:www.examda.com

2.将被调用函数的入口地址(函数名)赋给函数指针变量,如程序第11行的pmax = max

3.以函数指针变量的形式调用函数,比如程序第14行的z=(*pmax)(x,y);调用函数的一般形式是:(*指针变量名)(自变量表)使用函数指针变量时要注意以下两点:

A.函数指针变量不能执行算术运算,这与数组指针变量不同。数组指针变量加减一个整数可以使指针移动到后面或前面的数组元素,而函数指针的移动是没有意义的。

B.(*指针变量名)”两边的括号在函数调用中是必不可少的,其中*不应该理解为求值运算,在这里只是一个符号。

指针功能

我们前面提到过,所谓函数类型是指函数返回值的类型。在C语言中,函数的返回值允许是指针(即地址)。这个返回指针值的函数叫做指针函数。
定义指针函数的一般形式是:
类型说明符*函数名(参数列表)
{
…/*函数体*/
}
其中在函数名前加“*”号表示它是一个类型说明符,表示返回的指针值所指向的数据类型。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C语言考试辅导教程第六章:指针[5]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情