返回指针的函数

/*
1. 看懂语法
2. 定义指向函数的指针:
    double(*p)(double,char *,int);
    p = haha;
    or
    double (*p)(double,char *,int)=haha;
3.如何间接调用函数
    1. p(19.7,"jack",10);
    2. (*p)(19.7,"jack",10); 

*/
#include <stdio.h>
int main(int argc, char *argv[])

void test(){

    printf("利用指针调用函数\n");

}
{
    // (*p)是固定写法,代表指针比那辆p将来肯定指向参数函数
    //左边的void:指针 变量p指向的函数没有返回值
    //右边的():指针变量p指向的函数没有形参;
    void (*p)();
    ///////////////////////////////////////
    p = test;//指针变量p指向了test函数

    (*p)();//利用指针变量间接调用函数
    test();//直接调用函数
    p();//这种方法=test(),因为p=test了 

    return 0;
}
时间: 2024-07-29 12:16:35

返回指针的函数的相关文章

【学习笔记】【C语言】返回指针的函数

函数如果带*的返回的就是指针 char *test(){ } 1 #include <stdio.h> 2 char *test(); 3 4 /* 5 返回指针的函数 6 */ 7 8 int main() 9 { 10 char *name = test(); 11 12 printf("name=%s\n", name); 13 14 return 0; 15 } 16 17 char *test() 18 { 19 return "rose";

【C语言】-返回指针的函数与指向函数的指针

本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 回到顶部 前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如指针数组.指向数组的指针.指向指针的指针,呵呵,看到这些名字是否

指向函数的指针与返回指针的函数

字面看就可以看出二者的区别,指向函数的指针即指针指向的地址为某个函数,而返回指针的函数为某个函数返回值是指针. 下面具体说: 1.指向函数的指针 bool (*ptr)(int a); 解析:声明指针ptr,指向的函数带有一个int形参,并返回bool型变量.注:*ptr两边的括号是必须的.否则如下: bool *ptr(int a); 为返回指针的函数,函数名ptr,参数为int 返回bool型指针变量. 2.指向函数的指针的初始化 只能通过0或者同类型的函数或函数指针进行初始化.可以用函数直

程序结构之返回指针的函数

返回指针的函数: 返回本地变量的地址是危险的 返回全局变量或者静态本地变量的地址是安全的 返回在函数内 malloc 的内存是安全的,但是容易造成问题 最好的做法是返回传入的指针 实例: #include<stdio.h> int* f(void); void g(void); int main(int argc,char const *argv[]) { int *p = f(); printf("*p=%d\n",*p); g(); printf("*p=%d

返回指针的函数与指向函数的指针的用法

#include<stdio.h> #include<stdlib.h> void *func(){ /* * 一种很容易犯的错误,将局部变量的地址返回 */ int m; printf("define as void *func()/n"); return &m; } /* * 声明一个指向函数的指针,指向返回类型为void指针的函数 */ void *(*pfunc)(); /* void (*pfun)(); * 声明一个函数,指向一个返回void

从函数返回指针

C++ 从函数返回指针 C++ 指针 C++ 指针 在上一章中,我们已经了解了 C++ 中如何从函数返回数组,类似地,C++ 允许您从函数返回指针.为了做到这点,您必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量. 现在,让我们来看下面的函数,它会生成 10 个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们,具体如下: #include <i

返回指针值的函数

返回指针型的数据 即地址 例如: int *(int x,int y), a是函数名,调用它以后能得到一个in * 指针,即整形数据的地址,x 和 y是函数a的形参为整数 定义返回指针的函数一般的形:      类型名 *函数名(参数列表):   下面通过一个例子来初步了解 #include<stdio.h> int main() { float score[][4]={{50,70,80,90},{56,89,67,88},{34,78,90,66}}; float *search(floa

C++从函数返回指针

C++ 允许您从函数返回指针.为了做到这点,必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量. 现在,来看下面的函数,它会生成 10 个随机数,并使用表示指针的数组名(即第一个数组元素的地址)来返回它们,具体如下: #include <iostream> #include <ctime> using namespace std; // 要生成和返回

解析 指针数组,数组指针,函数指针

一 :关于指针和堆的内存分配 指针数组 : 一个数组里放的都是指针,我们把他叫做指针数组 int * a[10]; 由于它是一个数组,他是不能从堆空间里申请空间的. 只能做个循环,每个元素去申请空间,或者每个元素去指向另外的地址空间. 数组指针 : 一个指向一唯或者多唯数组的指针: int * b=new int[10]; 指向一唯数组的指针b ; 一些例子: int (*b2)[10]=new int[10][10]; 注意,这里的b2指向了一个二唯int型数组的首地址. 注意,这里的b2的类