2018年11月2日 leetcode的确是一个不错的网站,希望能提升自己的算法力int* twoSum(int* nums, int numsSize, int target) { }出现的第一个方法,很久没做C的我也懵逼了,这是函数指针还是指针函数,首先这是函...

2018年11月2日
leetcode的确是一个不错的网站,希望能提升自己的算法力
int* twoSum(int* nums, int numsSize, int target) {
}
出现的第一个方法,很久没做C的我也懵逼了,这是函数指针还是指针函数,首先这是函数确实的,所以他是有返回值的。而且返回值是一个指针。那就是说他肯定是指针函数了。
指针函数顾名思义:就是指针函数了,只不过返回的值是指针变量而已,记住返回指针的函数就好了;
举个栗子: int *f(int a, int b); // 声明指针函数
//小写字符转换为大写字符指针函数
char * upper(char *str) {
// 先保留初的地址。因为等会str指向的位置会变来变去的。
char *dest = str;
//如果不是非空字符串则进行循环变量转换
while(*str != '\0'){
if(*str >='a' && *str <= 'z'){
//转为大写
*str -= 'a' -'A';
}
str ++;//遍历下一个
}
return dest;
}
int main()
{
// 定义一个字符串变量
char str[] = "gxj";
// 调用函数
char *dest = upper(str);
printf("%s", dest);
return 0;
}
结果:GXJ
2 函数指针,搞懂了指针函数,函数指针就很简单了
char str[] = 'gxj';
//声明一个函数指针
char (*lowtoupper)(char *str);
lowtoupper = upper;
//使用函数指针upper调用函数
lowtoupper (str);
结果:GXJ
本文标题为:C语言算法入门


基础教程推荐
- 漫画讲解C语言中最近公共祖先的三种类型 2023-01-01
- C/C++ Qt StatusBar底部状态栏应用教程 2023-01-10
- C++类和对象到底是什么 2022-11-12
- 如何告诉 MinGW 链接器不要导出所有符号? 2022-10-07
- C语言文件操作与相关函数介绍 2023-06-13
- 使用VS2022开发在线远程编译部署的C++程序(图文详解) 2023-01-15
- C++高级数据结构之并查集 2023-04-20
- 使用C/C++读写.mat文件的方法详解 2023-03-05
- C语言实现简易停车场管理系统 2023-03-13
- C语言预编译#define(预处理) 2023-04-03