函数指针的返回值是指针数组,数组里放的是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,并求最值 /* ...
随机推荐
- Perl包相关
名称冲突问题 假如在sum2.pm中使用require导入了一个代码文件sum1.pm: #!/usr/bin/env perl use strict; use warnings; use 5.010 ...
- [Redux] redux的概述
redux 的概述 随着 javascript 单页应用的不断发展,javascript 需要管理比以往都要多的状态,管理不断变化的 state 非常困难,数据流动不断变的模糊不可预测,代码的开发与维 ...
- [转]从minio中读取文件流进行下载文件
本文转自:https://blog.csdn.net/ZHANGLIZENG/article/details/82892678 一.获取Minio连接 public static String ...
- Maven私服 Nexus使用一例
一.背景 本次搭建Nexus的私服是为了解决两件事 1.公司网络限制,部分项目组同事无法直接访问互联网,不能直接下载一些依赖的jar文件; 2.一些独立的jar无法通过Maven添加依赖的方式引入到项 ...
- DLL加载,设置相对路径
DLL加载,设置相对路径 1. 加载dll方法之一:(./ 代表当前目录,../ 代表上层目录)包含头文件的相对路径(当前路径为源代码路径,路径 “../../” 当前项目文件夹上级目录),链接lib ...
- 12. ReadWriteLock 读写锁
package com.gf.demo11; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent. ...
- awk、nawk、mawk、gawk的简答介绍
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出(即管道).它支持用户自定义函数和 动态正则表达式等先进功能,是linu ...
- 腾讯云下的CentOS7 配置 Apache服务器
第一步 :安装Apache服务程序(软件包名为httpd) * yum install httpd 第二步:配置httpd.conf文件 * vi /etc/httpd/conf/httpd.conf ...
- 汇编语言--微机CPU的指令系统(五)(字符串操作指令)
(11)字符串操作指令 字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针DS:SI或ES:DI来指定的.字符串操作指令可对内存单元按字节.字或双字进行处理,并能根据操作对象的 ...
- EF中更新操作 ID自增但不是主键 ;根据ViewModel更新实体的部分属性
//ID自增但不是主键的情况 public int Update_join<TEntity>(TEntity entity) where TEntity : class { dbconte ...