TA的每日心情 | 汗 2024-10-15 10:05 |
---|
签到天数: 372 天 [LV.9]以坛为家II
|
- /*
- 返回指针的函数 与 指向函数的指针
- 1、返回指针的函数:这是一个函数,函数的返回类型不是基本数据类型,而是一个指针类型,返回的是一个地址;
- 2、接收返回值的变量必须是一个指针类型的变量,实际意义在于让指针变量指向这个返回值;
- 3、指向函数的指针:这是一个指针,这个指针指向的地址是一个函数,与函数性质(是否有返回值或形参等)无关;
- 4、函数指针格式:返回类型 (*变量名) (形参1, 形参2, ...)并且一一对应;
- 5、如void (*p)( ) 能且只能指向一个无返回值,且无形参的函数;int (*p)(int a, int b)能且只能指向一个返回值为int,带两个int形参的函数;
- */
- #include <stdio.h>
- #include <stdlib.h>
- char *test(); // 函数声明
- void test2(); // 函数声明
- int main() {
-
- char *str = "abcdef"; // 定义一个指针,并将指针指向一个字符串;
-
- str = test(); // 修改指针的值,将函数的返回值赋值给指针str;注意:这里不是修改字符串"abcdef",而是将原本指向"abcdef“的指针指向了其他的字符串;
-
- printf("str = %s\n", str); // 打印指针str所指向的内容;
-
- void (*p)() = test2; // 定义指向函数(无返回无形参)类型的指针p;
-
- //test2(); // 函数调用方式一:直接调用;
-
- //p(); // 函数调用方式二:使用指针调用;
-
- (*p)(); // 函数调用试三:指针调用;
-
- system("pause");
-
- return 0;
-
- }
-
-
- char *test() { // 返回指针类型的函数
-
- return "yusian"; // 返回值为字符串,因此使用指针做为返回类型;
-
- }
- void test2() { // 普通无返回值的函数 ;
-
- printf("Function is called !\n"); // 函数功能只打印一句话证明被调用;
-
- }
复制代码 运行结果:- str = yusian
- Function is called !
- 请按任意键继续. . .
复制代码
|
|