C基础笔记(函数指针)
1.C基础笔记(Hello world)2.C基础笔记(输出函数)3.C基础笔记(常量与变量)4.C基础笔记(常量与变量2)5.C基础笔记(输入函数)6.C基础笔记(运算符1)7.C基础笔记(运算符2)8.C基础笔记(分支结构if-else)9.C基础笔记(for循环语句)10.C基础笔记(分支语句switch开关语句)11.C基础笔记(嵌套for循环)12.C基础笔记(while循环)13.C基础笔记(函数)14.C基础笔记(函数与变量)15.C基础笔记(数组)16.C基础笔记(二维数组)17. C基础笔记(指针)
18.C基础笔记(函数指针)
19.C基础笔记(字符串)20.C语言基础(结构体)21.C基础笔记(结构体的使用与嵌套)指针调用:在一个函数里访问另一个函数里的变量
在一个函数里访问另一个函数里的变量 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<stdio.h> void swap( int * a, int * b); int main() { int a=1; int b=2; printf ( "a=%d,b=%d\n" ,a,b); // %p表示地址符 swap(&a,&b); //调用swap函数 printf ( "a=%d,b=%d\n" , a,b); return 0; } void swap( int * a, int * b) //交换值 { int t=*a; *a=*b; *b = t; } |
结果:
a=1,b=2
a=2,b=1
函数指针:populate_array() 函数定义了三个参数,第三个参数是函数的指针,通过该函数来设置数组的值
定义回调函数 getNextRandomValue(),使它返回一个随机值,它作为一个函数指针传递给 populate_array() 函数。
#include <stdlib.h> #include <stdio.h> void populate_array(int *array, size_t arraySize, int (*getNextValue)(void)) { for (size_t i=0; i<arraySize; i++) array[i] = getNextValue(); } // 获取随机值 int getNextRandomValue(void) { return rand(); } int main(void) { int myarray[10]; /* getNextRandomValue 不能加括号,否则无法编译,因为加上括号之后相当于传入此参数时传入了 int , 而不是函数指针*/ populate_array(myarray, 10, getNextRandomValue); for(int i = 0; i < 10; i++) { printf("%d ", myarray[i]); } printf("\n"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)