IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 指针与函数 -> 正文阅读

[游戏开发]指针与函数

指针作为函数的返回值

在C语言中,地址也可以作为一个返回值,被函数返回。

但值得注意的是,不能在实现函数时返回在函数内部定义的自动变量的地址。因为作为自定义函数的局部变量,在函数返回时就会自动消亡,其储存单元不再有效。

因此,返回指针的函数一般都返回主调函数或者静态存储区中变量的值,值得一提的是,在函数中是通过动态内存分配方式建立的内存单元,其地址也可以正常返回。

#include "stdio.h"
char *find(char *s,char ch);
int main(void)
{
    char ch,a[10];
    char *p;
    printf("please inter your word\n");
    scanf("%s",a);//%s会吸收换行符;
    getchar();
    printf("please inter your letter\n");
    ch=getchar();
    p = find(a,ch);
    if(p!=NULL)
    {
        printf("%s",p);
    } else{
        printf("Not found");
    }
    return 0;
}
char *find(char *s,char ch)
{
    while (*s!='\0')
    {
        if(ch==*s)
        {
            return s;
        } else
        {
            s++;
        }
    }
    return NULL;
}

函数指针:

在c语言中,函数名代表函数的入口地址,可以定义一个指针变量,接受函数的入口地址,让它指向函数,这就是指向函数的指针,也叫函数指针。

定义格式:

?类型名(*变量名)(参数类型表);

在使用函数指针前,要先对它进行赋值,将一个函数名赋给函数指针,但要注意函数返回值的类型应该与函数指针的类型一致。

int (*p)(int int);

int fum(int int);

p=fum;

fum等价与*p

#include "stdio.h"
#include "math.h"
double f1(double x);
double f2(double x);
double calc(double (*p)(double ),double a,double b);
int main(void)
{
    double result;
    double (*p)(double );
    result= calc(f1,0.0,1.0);
    printf("%f\n",result);
    p=f2;
    result= calc(p,1.0,2.0);
    printf("%f\n",result);
    return 0;

}
double f1(double x)
{
    return (x*x);
}

double f2(double x)
{
    return (sin(x)/x);
}
double calc(double (*p)(double ),double a,double b)
{
    double z;
    z=(b-a)/2*((*p)(a)+(*p)(b));
    return z;
}

函数指针与指针函数的差别

指针函数:是一个函数,其返回值为指针;

形式:int *p(int int);

函数指针:是一个可以指向函数的指针;

形式:int (*p)(int int);

()的优先级是高于*的,所以在指针函数中,p会先和(int int)结合,形成一个函数。与数组指针与指针数组。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:46:09  更:2022-04-24 09:48:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:35:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码