C语言---函数

与指针相关的运算符

指针是一个值为内存地址的变量(或数据对象)

地址运算符:&

一般注解:后面跟一个变量名时,&给出该变量的地址。

示例:&nurse表示变量nurse的地址

间接(或解引用)运算符:*

一般注解:后跟一个指针名或地址时,*给出存储在指针指向地址上的值。

示例:

nurse=22;

ptr=&nurse;//指向nurse的指针

val=*ptr;//把ptr指向的地址上的值赋给val

执行以上3条语句的最终结果是把22赋给val。

可以把变量相关的两类信息传递给函数

第一种:主函数调用function1(x);要求函数定义中的形式参数必须是一个与x的类型相同的变量: int function1(int num);

第二种:主函数调用function2(&x);要求函数定义中的形式参数必须是一个指向正确类型的指针:int function2(int *ptr);

使用指针在函数间通信

int main(void){
    int x = 5,y=10;
    printf("原始的x = %d 和 y = %d。\n",x,y);
    interchange(&x,&y);//把地址发送给函数
    printf("现在 x = %d 和 y=%d.\n",x,y);
    return 0;
}
void interchange(int *u,int *v){
    int temp;
    temp = *u;//temp获得u所指向对象的值
    *u = *v;
    *v = temp;
}

interchange(&x,&y)该函数传递的不是x和y的值,而是它们的地址。

这意味着出现在interchange()原型和定义中的形参u和v将把地址作为它们的值。

使用* 和 指针,该函数可以访问存储在这些位置的值并改变它们

 

C语言主调函数可以通过函数指针来获取被调函数的数据。函数指针是指向函数的指针变量,它可以存储函数的入口地址。在C语言中,编译时每个函数都有一个入口地址,函数指针就是指向这个地址的指针变量。通过函数指针,主调函数可以调用被调函数,并获取被调函数返回的数据。

具体的步骤如下:

  1. 声明一个函数指针变量,该指针变量指向返回特定类型的函数。例如,如果被调函数返回整型值,那么函数指针应该指向返回整型值的函数。
  2. 将被调函数的地址赋值给函数指针变量。可以使用被调函数的函数名来获取函数的地址。
  3. 通过函数指针变量调用被调函数。可以将函数指针变量当作函数名来使用,加上括号并传递函数参数。
  4. 使用主调函数中的变量接收被调函数返回的数据。

总结一下,C语言主调函数通过声明、赋值和调用函数指针来获取被调函数的数据。函数指针允许主调函数动态地调用不同的函数,并获取它们的返回值。这种灵活性使得函数指针在C语言中非常有用。

posted @ 2023-09-06 17:21  苏卡  阅读(63)  评论(0)    收藏  举报