函数指针的返回值是指针数组,数组里放的是int;函数指针的返回值是指针数组,数组里放的是int指针
函数指针的返回值是指针数组,数组里放的是int
函数指针的返回值是指针数组,数组里放的是int指针
#include <stdio.h>
#include <stdlib.h>
void fun(int a){
printf("fun:%d\n", a);
}
void fun1(void (*f)(int),int a){
f(a);
}
int gun(int a){
printf("gun:%d\n", a);
}
int gun1(int a, int(*f)(int)){
printf("gun1:%d\n", a);
}
int (*hun(int a))[]{
int (*p)[3] = (int(*)[3])malloc(sizeof(int[3]) * 2);
(*p)[0] = a+1;
//p[0][0] = a+1;
p[0][1] = a+2;
p[0][2] = a+3;
(*(p+1))[0] = a+11;
//下面写法是错误的,p+1两侧必须加括号
//(*p+1)[0] = a+11;
p[1][1] = a+22;
(*(p+1))[2] = a+33;
return p;
}
int *(*hun1(int a))[]{
int* (*p)[3] = (int*(*)[3])malloc(sizeof(int*[3]) * 2);
int *w1 = (int*)malloc(sizeof(int));
*w1 = 10+a;
int *w2 = (int*)malloc(sizeof(int));
*w2 = 20+a;
int *w3 = (int*)malloc(sizeof(int));
*w3 = 30+a;
int *w4 = (int*)malloc(sizeof(int));
*w4 = 40+a;
int *w5 = (int*)malloc(sizeof(int));
*w5 = 50+a;
int *w6 = (int*)malloc(sizeof(int));
*w6 = 60+a;
(*p)[0] = w1;
p[0][1] = w2;
p[0][2] = w3;
(*(p+1))[0] = w4;
p[1][1] = w5;
(*(p+1))[2] = w6;
return p;
}
int main(){
//指针数组,数组里是函数指针,指向的函数没有返回值,1个int参数
void (*a[1])(int);
a[0] = &fun;
(*a[0])(1);
//指针数组,数组里是函数指针,指向的函数没有返回值,2个参数。第一个参数是函数指针,指向的函数没有返回值,1个int参数;第二个参数是int
void (*b[1])(void(*)(int),int);
b[0] = &fun1;
(*b[0])(a[0],10);
//指针数组,数组里是函数指针,指向的函数的返回值是int,1个int参数
int (*c[1])(int);
c[0] = &gun;
(*c[0])(3);
//指针数组,数组里是函数指针,指向的函数的返回值是int,2个参数。第一个参数是int;第二个参数是函数指针,指向的函数的返回值是int,1个int参数。
int(*d[1])(int, int(*)(int));
d[0] = &gun1;
(*d[0])(120,c[0]);
//指针数组,数组里是函数指针,指向的函数的返回值是数组指针,数组里是int,1个int参数。
int (*(*e[1])(int))[];
e[0] = &hun;
int (*p)[3] = (*e[0])(3);
for(int i = 0; i < 2; ++i){
for(int j = 0; j < 3; ++j){
printf("%d ", p[i][j]);
}
printf("\n");
}
free(p);
//指针数组,数组里是函数指针,指向的函数的返回值是数组指针,数组里是int指针,1个int参数。
int *(*(*g[1])(int))[];
g[0] = &hun1;
int* (*p1)[3] = (*g[0])(10);
for(int i = 0; i < 2; ++i){
for(int j = 0; j < 3; ++j){
printf("%d ", *p1[i][j]);
}
printf("\n");
}
free(p1);
}
函数指针的返回值是指针数组,数组里放的是int;函数指针的返回值是指针数组,数组里放的是int指针的更多相关文章
- PHP正则表达式;数组:for()遍历、 foreach ()遍历、each()list()组合遍历;指针遍历
正则表达式: 1.定界符号 任何字符,一般用 // 2. 模式修正符i 写在定界符外面后面,可不区分大小写 3.preg_replace($reg,&q ...
- 给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)
""" #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况) 解题思路: 1.设定一个 ...
- 现在有m组n个有序数组,例如{1,2,3,4},{2,3,4,6},{1,3,5,7},在这些数组中选择第k小的数据,然后返回这个值
问题描述:现在有m组n个有序数组,例如{1,2,3,4},{2,3,4,6},{1,3,5,7},在这些数组中选择第k小的数据,然后返回这个值 思路:参照两个数组归并的过程,每次选取最小的数据进行比较 ...
- pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值.
- js数组内数字按大小排序实现函数
正常冒泡排序: function evlabc(a) { //排序大小 var i = j = t = 0; for (i = 0; i < a.length; i++) { for (j = ...
- JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集
工具地址:https://github.com/BothEyes1993/bes-jstools bes-jstools 100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outil ...
- 值类型之间的相互转化,运算符,if条件判断,循环,函数
值类型之间的相互转化 number | string | boolean 一.转换为boolean=>Boolean(a); var num = 10; var s = '123'; var b ...
- js数组对象--数据格式的转换(字符串,对象的取值与赋值)
材料:提供一份数据:arr=[ {value:335, name:'直接访问'}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value ...
- 表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数
目录 表达式树练习实践:C#值类型.引用类型.泛型.集合.调用函数 一,定义变量 二,访问变量/类型的属性字段和方法 1. 访问属性 2. 调用函数 三,实例化引用类型 四,实例化泛型类型于调用 五, ...
- 使用基础知识完成java小作业?强化练习-1.输入数组计算最大值-2.输出数组反向打印-3.求数组平均值与总和-4.键盘输两int,并求总和-5.键盘输三个int,并求最值;
完成几个小代码练习?让自己更加强大?学习新知识回顾一下基础? 1.输入数组计算最大值 2.输出数组反向打印 3.求数组平均值与总和 4.键盘输两int,并求总和 5.键盘输三个int,并求最值 /* ...
随机推荐
- JsonBuilder初出茅庐
互联网这股东风不久前刮到了甘凉国,国王老甘独具慧眼,想赶紧趁着东风未停大力发展移动互联网,因为他笃信布斯雷的理论:“站在风口上,猪都能飞起来”.无奈地方偏僻落后,国内无可用之才啊.老甘一筹莫展的低头凝 ...
- 分享一个用QT实现的Mjpeg-streamer客户端(简易版)
mainWindow代码如下(由于篇幅问题,子窗口代码不贴出了,有需要源码的可以留下邮箱): /* * Author : 博客园 Lance# */ #include "mainwindow ...
- 判断本机ip是电信还是网通
string location = "0";//0是网通 1是电信 Uri uri = new Uri("http://www.ip138.com/ips138.asp& ...
- 【转载】使用Jquery操作Cookie对象
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.jQuery是一个封装好的JavaScript库,使用jQuery可以极大地简化了Java ...
- Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数
背景 笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧! ...
- Tomcat日志设定
1 Tomcat 日志概述 Tomcat 日志信息分 为 两 类 : 一.是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异常 错误 日志信息 .二.是 访问 日志信息,它 记录 的 访 ...
- IIS域名转发
在IIS中设置Http重定向 界面操作如下: 最终通过上面的操作生成了一个配置文件如下: 我这面就是一个空的目录,里面仅包含这个配置文件,就可以实现转发啦
- UWP: 妙用自定义 Action 以简化并重用代码
相信每一位 App 开发者,在开发过程中,都会有一些代码被反复用到,比如:复制文本,打电话,发短信,发邮件,给应用添加评论等等.在项目之间复制这些代码段,实在不是一个好办法,所以大家可能会把这些代码放 ...
- Java集合性能分析-疯狂Java讲义
一.各Set实现类的性能分析 HashSet和TreeSet是Set的两个典型实现.HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet需要额外的红黑树 ...
- Python3 系列之 面向对象篇
面向对象的三大特性:继承.封装和多态 Python 做到胶水语言,当然也支持面向对象的编程模式. 封装 class UserInfo(object): lv = 5 def __init__(self ...