• 简单定义并间接调用
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
void singasong()
{
printf("%s\n","我爱的你啊,我爱的你,你在哪里啊,在哪里~");
} void main()
{
void (*p)();//声明一个函数类型指针
p = singasong;//让指针指向定义的函数
p();//间接调用
system("pause");
}

输出结果:

  • 直接调用
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
int gloabalnum = ;
int * getnum()
{
return &gloabalnum;
} void main()
{
time_t ts;//时间种子类型
int a[];
int *q = NULL;
srand((unsigned int) time(&ts));//随机生成时间种子
for (int i=; i < ; i++)
{
a[i] = rand() % ;
}
for (int i = ; i < ; i++)
{
printf("%d\n",a[i]);
}
q = themax(a,);
printf("最小数是:%d\n", *q);
printf("另外,全局变量是%d\n",*(getnum()));
system("pause");
}

输出结果:

  • 字符串指针相互赋值
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
void singasong()
{
printf("%s\n","我爱的你啊,我爱的你,你在哪里啊,在哪里~");
}
char * mystrcpy(char * srcstr, char * targetstr)
{
char * laststr = NULL;
if (srcstr == NULL)
{
targetstr = "哟~您这源字符串空的啊~";
}
else
{
laststr = targetstr;
while (*srcstr != '\0')
{
*targetstr = *srcstr;
srcstr++;
targetstr++;
}
*targetstr = '\0';//还是很有必要,否则将跟随乱码
}
return laststr;
} void main()
{
//函数返回值是指针
char *z = (char*)malloc(sizeof(char));
char *q = (char*)malloc(sizeof(char));
z = mystrcpy("阿凡提",q);
printf("%s\n",z);
system("pause");
}

c语言的函数指针的更多相关文章

  1. c语言之函数指针应用

    c语言之函数指针应用 1.函数指针与指针函数 在开始运用函数指针前,我们需要将两个概念即:函数指针与指针函数搞清楚. 函数指针,指明这个一个函数,但返回值为指针类型,语法格式为: 类型名* 函数名A( ...

  2. c语言之函数指针

    一.基础研究 这里研究的内容是函数指针,需要我们在研究后构造程序来描述函数指针数组的用法和向函数传函数指针的方法. 指针有很多种:整型指针.结构体指针.数组指针等等,它们的本质是它们的值都是一个地址, ...

  3. 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)

    1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表)    例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...

  4. C语言的函数指针数组(好绕啊~看完这篇估计就通关了)

    转自https://www.cnblogs.com/chr-wonder/p/5168858.html int *(*p(int))[3] 今天有人问这个是啥?我一看直接就懵逼了…… 下面做一些简单的 ...

  5. C语言基础:函数指针 分类: iOS学习 c语言基础 2015-06-10 21:55 15人阅读 评论(0) 收藏

    函数指针:指向函数的指针变量. 函数名相当于首地址. 函数指针定义:返回值类型  (*函数指针变量名)(参数类型1,参数类型2,....)=初始值 函数指针类型:返回值类型  (*)(参数类型1,参数 ...

  6. c语言定义函数指针和typedef简写

    二种方法来定义函数指针 #include<stdio.h> #include<stdlib.h> #include<Windows.h> int add(int a ...

  7. C语言之函数指针、回调函数的使用

    一.背景 首先看下如下代码,这个定义是放在头文件的,在程序中tCdrvCallbackFkt也定义了另一个变量,而且括号后面还跟定义了几个变量,不理解这个定义. typedef void (PUBLI ...

  8. c语言的函数指针和函数指针数组的简单demo

    今天,简单记录一下,函数指针和函数指针数组的使用,废话不多说,直接贴上代码,里面有详细的注释,方便以后查阅. #include <cstdio> #include <Windows. ...

  9. 可读性很强的C语言的函数指针定义

    通常C/C++程序里面要用到大量的指针,其语法非常难以阅读.比如下面的vp指针类型: #include <iostream> using namespace std; typedef vo ...

随机推荐

  1. linux编程 新建一个进程的方法

    学习到一种,直接调用系统函数,在类的构造函数中直接启动一个线程,例如,某个类是用来监听串口的,可以直接在其构造函数中调用系统函数,开辟一个进程,在该进程对应的函数中不断while(1){....} h ...

  2. juc-locks包

    1. 简介 java.util.concurrent.locks 包含常用的锁实现,重点研究AbstractQueuedSynchronizer.ReentrantLock.ReentrantRead ...

  3. java war包 远程debug出现的问题解决,学会查看日志

    开启远程debug之后,8005 关闭tomcat 又启动不了了.. netstat -lnp 未发现8005接口 eclipse 内远程链接到服务器,debug 下发现服务器线程启动也存在问题.很多 ...

  4. CTeX error saving the project file

    「Options -> ConfigurationWizard -> User Profiles > 点击 Create/Update User Profile 按钮」 重启WinE ...

  5. PAT(B) 1081 检查密码(Java)

    题目链接:1081 检查密码 (15 point(s)) 题目描述 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母 ...

  6. hdu.. 基础二分的精度问题

    #include<stdio.h>#include<iostream>using namespace std;double f(double x){ return 8*x*x* ...

  7. 【转载】使用Jedis操作redis

    Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted se ...

  8. C#,WinForm文本框录入内容判断

    || e.KeyChar > ) && (e.KeyChar != ) && (e.KeyChar != ) && (e.KeyChar != ) ...

  9. 命令“regsvr32 /s /n /i:user "XXXXXX"”已退出,代码为 3

    问题:命令“regsvr32 /s /n /i:user "F:\XXXXXXXXXXXXXXXXX\Release\One.ocx"”已退出,代码为 3 解决方法: The is ...

  10. vue的交互

    交互     Vue做交互需要引入一个库:vue-resouce.js     get:      post     jsonp   <script src="vue.js" ...