在学习函数定义时,大家知道一个函数分为函数头和函数体,其中函数头包括返回值、函数名和参数表,那指针与函数是什么关系?

void sum(int a,int b);//void 是返回值,sum是函数名,int a和int b是函数参数

指针可替代函数头中的每一部分,也就是指针与函数有三重关系:指针作为函数参数,指针作为函数返回值,指向函数的指针。

  一、指针作为函数参数

  在第三节课里说过,指针的主要用途就是作为函数参数,当函数参数为普通变量时,函数参数的传递是值传递,而当函数参数是指针时,依然是值传递,只是这时的值是地址,通过地址可以访问到函数外的变量的值,有些书上也称指针作为函数参数为双向传递。具体例子可参考第三节课大纲。

  二、指针作为函数返回值

  函数的返回值可以是整形的,也可以是double等,那么也可以是指针类型的。如果函数返回一个int类型数据,那么返回值写为int就可以,相应的如果返回一个int类型的指针,返回值则是int *类型。

int i;
int sum(int a);    返回整型类型

int *p;
int *sum(int a);   返回指针类型

  举例说明,以指针返回值的形式输出两个数中比较大的值,通过整形数据可以将最大值返回给main,也可以通过指针返回回来:

 1 #include<stdio.h> 
 2 int *max(int *p1,int *p2){
 3     int *r;
 4     if(*p1>*p2) r=p1;
 5     else r=p2;
 6     
 7     return r;
 8 }
 9 
10 int main(){
11     int a,b,*p;
12     printf("input a and b:\n");
13     scanf("%d,%d",&a,&b);
14     p=max(&a,&b);
15     printf("max=%d",*p);
16     
17     return 0;
18     
19 }
View Code

相关文章:

  • 2021-06-29
  • 2021-07-21
  • 2021-09-12
  • 2022-01-29
  • 2021-07-04
  • 2022-12-23
  • 2021-06-20
  • 2021-06-23
猜你喜欢
  • 2021-07-26
  • 2021-08-12
  • 2021-12-18
  • 2021-10-19
  • 2021-11-24
  • 2022-01-28
  • 2022-02-12
相关资源
相似解决方案