精华内容
下载资源
问答
  • 2021-10-13 23:01:04

      当我们想要一个在不同函数中都能使用变量时,我们一般都会想到 什么呢???

       想必大家都会说定义一个全局变量吧。但是还有一个好东西,那就是指针,函数调用指针!

       那么我来谈谈,自己对指针的一点点见解,

        当我们int *p;这时我们就定义了一个指针变量,那么我们如何将它初始化呢?有两种方式

        1、 int *p=&b; 这时printf("%d",*p)输出的是b,而printf("%d",p)这个语句输出的是存储b的地址,

    我们不能int *p=b;这样是不行的,这时只能赋值地址变量

        2、p=&b;指针初始化时,只能赋值地址,

    当我们使用函数调用时,可以这样a(p)   或int b=0;  a(&b);函数这样定义  a(int *p)

    更多相关内容
  • C语言中对函数指针调用

    千次阅读 2021-04-21 22:08:09
    调用函数指针变量)对a,b值进行交换 /* ↓此处a,b地址与main函数a,b地址不同,a,b仅仅在此函数内互相交换,main函数内a,b并没有交换 */ void Swap_err1(int a,int b) { int tmp = a; a = b; b = tmp; } ...

    调用函数(指针变量)对a,b值进行交换

    /*
    ↓此处a,b地址与main函数a,b地址不同,a,b仅仅在此函数内互相交换,main函数内a,b并没有交换
    */
    void Swap_err1(int a,int b) 
    {
    	int tmp = a; 
    	a = b;
    	b = tmp;
    }
    
    /*
    ↓*tmp野指针,指针*tmp指向地址的值可能不允许被访问,程序崩溃
    */
    void Swap_err2(int *p1,int *p2)
    {
    	int *tmp;
    	*tmp = *p1;
    	*p1 = *p2;
    	*p2 = *tmp;
    }
    
    /*
    正解,通过对指针*p1,*p2进行解引用,借助整型变量tmp临时保存
    */
    void Swap(int *p1,int *p2) 
    {
    	int tmp = *p1;
    	*p1 = *p2;
    	*p2 = tmp;
    }
    
    int main()
    {
        //交换a,b值
    	int a = 10,b = 20;
    	Swap(&a,&b); //通过地址解引用交换
    	printf("a = %d,b = %d\n",a,b);
    	return 0;
    }
    
    展开全文
  • C语言函数指针调用

    2020-03-24 15:25:56
    C语言函数指针调用 平时我们使用函数传递的参数一般为数据变量,那么是否可以传递函数呢? 答案是不但可以,而且习惯以后,会用上瘾的。通过传递不同的函数指针,我们可以实现在函数调用不同的子函数。 下面就举...

    C语言函数指针与调用

    平时我们使用函数传递的参数一般为数据变量,那么是否可以传递函数呢?
    答案是不但可以,而且习惯以后,会用上瘾的。通过传递不同的函数指针,我们可以实现在函数中调用不同的子函数。
    下面就举个栗子,说一下函数指针的用法。
    有四个函数:
    int add2(int a, int b)
    {
    return a+b;
    }

    int sub2(int a, int b)
    {
    return a-b;
    }

    int mul2(int a, int b)
    {
    return a*b;
    }

    int div2(int a, int b)
    {
    return a/b;
    }
    下面将演示如何天下一统,通过一个函数实现对两个输入形参的不同运算!
    定义一个函数:
    int calculate(int a, int b, int (*fun_t)(int a, int b))
    {
    int result;
    result = fun_t(a, b); // 运算
    result++;
    return result;
    }
    形参 int (*fun_t)(int a, int b),int表示返回值类型,也可写成
    int calculate(int a, int b, int *fun_t(int a, int b))。
    在main中使用此函数:
    void main(void)
    {
    int result1,result2;
    int a = 192, b = 48;

    /* 两个数相加的操作 */
    result1 = calculate(a, b, add2);
    result2 = calculate(a, b, mul2);
    }
    仿真跟踪,进入第一次调用,形参fun_t值为0x410C,即add2函数地址。
    仿真运行add2函数
    感觉形参int *fun_t(int a, int b)太繁琐?
    我们可以这样定义函数:
    int calculate(int a, int b, int *fun_t(int , int ))
    {
    int result;
    result = fun_t(a, b); // 运算

    return result;
    }
    还嫌麻烦?有办法,别忘了typedef!
    typedef int *fun_t(int, int);
    int calculate(int a, int b, fun_t operation)
    {
    int result;
    result = operation(a, b); // 运算
    return result;
    }

    编译仿真,运行结果相同。
    仿真运行mul2函数

    展开全文
  • 涨姿势啦!指针调用函数的方式不小心被我学会啦! #include int max(int *a) { int i,m; m=*a; for(i=0;i<10;i++) { if(*(a+i)>m) { m=*(a+i); } } return m; } int...
    涨姿势啦!指针调用函数的方式不小心被我学会啦!
    #include
    int max(int *a)
    {
        int i,m;
        m=*a;
        for(i=0;i<10;i++)
        {
            if(*(a+i)>m)
            {
                m=*(a+i);
            }
        }
        return m;
    }
    int main()
    {
        int i,m,a[10];
    int (*pf)(int a[]);
        for(i=0;i<10;i++)
            scanf("%d",&a[i]);
        for(i=0;i<10;i++)
            printf("数组:%d :%d\n",i,a[i]);
         pf=&max;
        m=(*pf)(a);

        printf("%d",m);
    }

    精彩的地方,就是那些:
    int (*pf)(int a[]); 
        pf=&max;
        m=(*pf)(a);
    我写成:int *(pf)(int a[])就是错误的!
    后来想想,这样写和不带小括号没啥区别!
    展开全文
  • C语言函数指针调用函数

    千次阅读 2015-07-01 21:26:18
    C语言可以定义指针变量指向函数,通过指针调用函数。 使用: 1、定义函数指针变量: 函数返回值类型 (*指针变量名)(); 2、将已有函数入口赋值给函数指针变量:fnPt = avg; 3、使用指针变量调用函数:(*指针变量名)...
  • #include "stdafx.h" #include<iostream> #include<string> using namespace std; #include<stdlib.h> int* func(){ static int n[10]; int *p;...int main(int argc, char* argv
  • 详解C语言指针函数、函数指针、函数指针数组

    万次阅读 多人点赞 2018-07-09 11:08:24
    而在指针中,指针函数、函数指针、指针函数数组、函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1. 指针函数 指针函数就是返回指针值...
  • C语言指针函数调用中的应用

    千次阅读 2019-06-01 13:44:31
    C语言指针函数调用中的应用 存放变量的地址就是指针指针指针就是指针变量 直接上代码: int a = 3,b = 4; point_1 = &a; point_2 = &b; Swap1(point_1,point_2); void Swap1( int *i, int *j) { ...
  • C语言函数调用方式有什么区别

    千次阅读 2021-05-19 13:11:07
    在使用VC进行函数定义时,通常会指定该函数调用方式,那么在C语言函数调用方式有什么区别呢?下面小编找到了一下教程,分享给大家,希望可以帮助到大家。通常在使用VC进行函数定义时会指定该函数调用方式,诸如:...
  • 我们可以将这个函数的首地址赋值给一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用函数。这种指针就是函数指针函数指针的定义形式 // returnType:函数返回值类型 // ...
  • 一、指针函数 指针函数:返回值为指针变量的函数 定义方法:int *a(int b,int c) 返回值为int型指针的函数。 二、函数指针 指针变量,指向函数起始地址。 定义方法:函数类型 (*指针变量名)(形参列表); 例:...
  • 指针函数一般是指返回指针的函数; #include <stdio> int* fun(int *a) { return a; } int main(int argc, char **argv) { int a = 3; printf("%d", *(fun(&a))); return 0; }   函数指针是表示指向函数...
  • 作 业使用指针数组函数完成 1. 编写一个通用函数函数可以实现判断一个含有五位数字的整数是否是回文数回文数的含义是从左向右与从右向左看数是相同的如23732是回文数而23564则不是编写主程序调用函数实现求所有5...
  • C语言实现函数调用的三种方法

    万次阅读 2021-01-28 21:53:20
    在一个.c文件里面进行子函数调用 step1:函数声明 step:mian函数 step:子函数 /******************************** 数组元素之和 法一: 子函数调用 **********************************/ #include<stdio.h&...
  • C语言:函数指针与指针函数

    千次阅读 2021-08-05 00:10:25
    C语言:函数指针与指针函数
  • C语言函数调用栈(二)

    2021-03-03 18:29:25
    此外,当被调函数完成任务后,调用约定规定先前入栈的参数由主调函数还是被调函数负责清除,以保证程序的栈顶指针完整性。1)函数参数的传递顺序和方式最常见的参数传递方式是通过堆栈传递。主调函数将参数压入栈中,...
  • C语言函数调用二维数组,指针问题

    千次阅读 2021-05-25 04:35:44
    话题:C语言函数调用二维数组,指针问题回答:正如楼下所言 int **p ,定义的p是一个指向int*型的指针int (*p)[1]是一个指向数组的指针 数度为1假如定义成 deal(int **p),传参数时要加类型转换: deal((int**)a);...
  • C语言函数及其调用

    万次阅读 多人点赞 2019-04-19 00:08:23
    一、C语言函数 1.概念:函数是一组一起执行一个任务的语句,每个c程序都必须有一个main函数,程序员可以把代码划分到不同的函数当中去,在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。c标准库提供...
  • C语言函数指针的三种使用方法总结 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能...
  • //调用order函数 } void SUM(int p,int n){ //自定义函数SUM查找数组中的奇数 int i,sum=0; printf(“the odd:\n”); for(i=0; i if ((p+i)%2!=0) { printf("%5d",(p+i)); sum=sum+(p+i); } } printf("\n"); printf...
  • C语言函数指针

    千次阅读 2022-02-05 21:52:10
    C语言函数指针
  • 黑色方框代表内存中的栈,向下增长~ 由_mainCRTStartup调用main函数,并在栈中创建了一个栈帧, 首先压入上一个函数的ebp0,划定范围大小为E4h(十六进制),对应十进制是228个内存单元 保存各个ebx、esi、edi的值...
  • 深入理解C语言指针

    万次阅读 多人点赞 2019-09-28 08:36:51
    一、指针的概念 要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。 1.1、变量和地址 先写一段...
  • C语言函数指针的用法 函数具有赋值给指针的物理内存地址,一个函数函数名就是一个指针,它指向函数的代码。一个函数的地址是该函数的进入点,也是调用函数的地址。函数调用可以通过函数名,也可以通过指...
  • 可以发现函数调用前后还是函数执行前后地址都没有发生改变,值做了交换     int *p; *p = *a; *a = *b; *b = *p; 可以发现三个指针互换时,是不能交换值和地址的,只有中间*a = *b起到了作用,所以b的值给了a...
  • 首先需要明确的是当我们将指针作为函数的形参如fun1()函数所示: #include<stdio.h> #include <stdlib.h> typedef struct Lstruct { int data; }LS; void fun1(LS *p1, LS *p2){ p1 = p2; } int ...
  • C语言函数指针与回调用函数

    万次阅读 2018-05-22 01:48:23
    1. 函数指针 指针c语言的精髓,同时也是c语言中比较深奥、比较难掌握的一个知识点。本质上,对于一个内存单元来说,单元的地址即为指针, 其中存放的数据才是该单元的内容。我们允许用一个变量来存放指针,这种...
  • 主要介绍了C语言调用Swift函数实例详解的相关资料,实现该功能可以通过定义全局的指向Blocks的对象指针来实现,需要的朋友可以参考下
  • C语言函数调用过程

    万次阅读 多人点赞 2018-05-14 16:42:54
    C语言函数调用过程先上一段代码#include&lt;stdio.h&gt; int Add(int x, int y) { int z = 0; z = x + y; return z; } #include &lt;stdio.h&gt; int main() { int a = 10; int b = 20; int...
  • c语言函数调用中用指针操作数组

    千次阅读 2020-08-18 17:23:07
    直接上代码 #include using namespace std; int p[20]; void change(int *p){ for(int... } 输出为 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 如果你传入的指针指向的是一个数组,在函数体中就可以直接用数组下标等操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 218,804
精华内容 87,521
关键字:

c语言指针函数的调用

友情链接: bmp.rar