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语言中,编译时每个函数都有一个入口地址,函数指针就是指向这个地址的指针变量。通过函数指针,主调函数可以调用被调函数,并获取被调函数返回的数据。
具体的步骤如下:
- 声明一个函数指针变量,该指针变量指向返回特定类型的函数。例如,如果被调函数返回整型值,那么函数指针应该指向返回整型值的函数。
- 将被调函数的地址赋值给函数指针变量。可以使用被调函数的函数名来获取函数的地址。
- 通过函数指针变量调用被调函数。可以将函数指针变量当作函数名来使用,加上括号并传递函数参数。
- 使用主调函数中的变量接收被调函数返回的数据。
总结一下,C语言主调函数通过声明、赋值和调用函数指针来获取被调函数的数据。函数指针允许主调函数动态地调用不同的函数,并获取它们的返回值。这种灵活性使得函数指针在C语言中非常有用。

浙公网安备 33010602011771号