函数指针练习

【C语言】指针专项练习 都是一些大厂的笔试真题 附有详细解析,带你深入理解指针 第四次打印,sizeof内部放的是a[0]+1,其中a[0]是第一行那个一维数组的数组名,这次没有单独放在sizeof内部,因此他代表第一行那个一位数组首元素的地址,也就是a[0][0]的地址,这个地址是int*类型的,+1跳过一个int类型的,因此sizeof内部放的其实是arr[0][1]的地址,他是int*类型的,打印结果是4或8。a[0]是第一行那个一维数组的数组名,代表这个一维数组首元素的地址也就是a[0][0]的地址,打印p[0]也就是*(p+0)就是打印a[0][0],因此打印结果是1。 阅读详情
#include <stdio.h>
#include <string.h>
#define M 5
void exc(int *a,int *(*p)(int *), int *(*q)(int *))
{
    int c, *m, *n; 
    m = p(a);
    n = q(a);
    c = *m;
    *m = *n;
    *n = c;
}
int *max(int *a)
{
    int *t;
    t = a;
    for (int i = 1; i < M; ++i)
    {
        if (*t < *(t + 1))
        {
            t = t + 1;
        }
    }
    printf("max = %d\n", *t);
    return t;   
}
int *min(int *a)
{
    int *t;
    t = a;
    for (int i = 1; i < M; ++i)
    {
        if (*t > *(t + i))
        {
            t += i;
        }
    }
    printf("min = %d\n", *t);
    return t;
}
int main(int argc, char const *argv[])
{
    int a[M];
    for (int i = 0; i < M; ++i)
    {
        scanf("%d", &a[i]);
    }
    int *(*p)(int *), *(*q)(int *);
    p = min;
    q = max;
    exc(a, p, q);
    for (int i = 0; i < M; ++i)
    {
        printf("%d ", a[i]);
    }
    return 0;
}
CTF-PWN练习之函数指针改写 目录预备知识一、相关实验二、objdump使用三、函数指针实验目的实验环境实验步骤一源码审计实验步骤二使用gdb调试程序实验步骤三发起溢出攻击 预备知识 一、相关实验 本实验要求您已经认真学习和完成了《CTF-PWN练习》以及《CTF-PWN练习之精确覆盖变量数据》。 二、objdump使用 使用objdump工具可以查看一个目标文件的许多内部信息,objdump有许多可选的参数选项,通过控制这些参数选项可以输出不同的文件信息。 本实验中,在对二进制程序进行分析时,我们可以使用objdump获取二进制程序中 阅读详情

相关推荐

指针习题(C/C++考试复习必备)

指针习题(C/C++考试复习必备),C++语言指针内容很难,精选题目供参考学习

C语言函数指针编程练习

前言 以下代码是我自己想的一个情景,并通过编程实现,通过本次编程熟悉了一下函数指针的操作,供大家参考! 函数指针概念的链接如下: 一、功能描述 本程序实现了一个编码解码的功能,设置了雇主和雇员两个结构体,雇主只需进行编码,而雇员需要解码和编码,雇主的编码方式是将需要发送的内容首先进行字符串转化为整型数组,之后再将每一个元素的值加50; (原因:雇主拥有最高权力,他只需要编码,不需要解码) 雇员的解码方式是首先判断雇主发送来的编码最后一位的情况,如果是“ r ”,则将编码升序排列,如果是“ f ”,则将编码降

qq_55648035的博客 823

C语言试卷练习(函数,循环,指针,结构体)

比较简单的试题。循环,函数,指针,结构体等等简单应用。

C语言函数指针习题(10道)

1. 直传递(单向传递):#include<stdio.h> int max(int a,int b) { int c; if(a>b) c=a; else c=b; a++; printf("a=%d\nb=%d\n",a,b); return c; } void main() { int x,y,m; scanf("%d%d",&x,&y); ...

helo_world01的博客 6820

C语言试题集(包括基础概念、函数、指针、结构体等等)

C语言基础语法试题,对于想动手练练的新手相当有用。包括基础概念、函数、指针、结构体等等。

FileZilla Server目录显示失败的处理方法

这两天河南大暴雨挺严重导致多处停电,我远在郑州机房的服务器也断网连不上了。一直到今天下午才恢复,影响较大,有些客户要数据,可是数据因为断网拿不到。于是我想,要是能把服务器的数据备份到其他地方,比如我的本机或者另外一台电脑该多好。 于是今天一整天我都在找远程备份数据的方法,把一台服务器上的数据实时同步到另外一台上。或者两台服务器互相同步。 找了半天发现了FreeFileSync这个宝藏软件,它的原理很简单是通过ftp传输数据。 我得先在服务器上安装个ftp服务,首选filezilla server,安..

两天打鱼三天晒网 4453

C语言指针经典练习题

1、指针,字符数组 若定义 chars[2][3]={“ab”,“cd”},*p=(char*)s; 那么下列表达式语法正确,并且其值与 s[1][1]相等的表达式(并非一定与其等价)是 A. *(s+3) B. p[1][1] C. *(p+3) D. *++P+2 答案:D 分析:这道题很好。首先字符型指针p存放的是字符串s的首地址,而字符串s表示的是这样...

吉大秦少游 4万+

vc mfc listctrl使用虚拟列表 虚拟列表用法

note 虚拟列表可有效加载大量数据 需要处理listctrl的 LVN_GETDISPINFO 消息 使用虚拟列表 不能 使用 insert的方法插入数据,而是告诉listctrl 当前要显示多少行 使用SetItemCount函数告诉listctrl当前显示多少行 使用虚拟列表需要自己维护数据源 使用 添加list ctrl 控件 将其Owner Data 属性 设置为 True 添加...

知其所以然 398

练习使用-函数指针:

2401_86636770的博客 162

基于 YOLOv26 的食品包装缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习的食品包装缺陷智能检测系统。该系统能够自动识别多种常见包装缺陷,包括密封不良、破损、污染、标签错误等8类问题。相比传统人工检测方法,该系统具有高精度、多类别分类、实时推理等优势。文章详细介绍了系统架构,包含数据采集、预处理、YOLOv26检测模型和后处理四个核心模块,并提供了完整的环境配置和数据处理代码实现。该系统为食品包装行业提供了一种高效、准确的智能视觉质检解决方案。

一键难忘的博客 686

函数指针与指针函数练习讲解

练习1:char *ptr;else请问指针为NULL时指向哪里,分配的空间为0时又指向哪里?代码解析:这段代码主要是调用malloc(0)来尝试分配 0 字节的内存,然后依据返回值来判断分配是否成功。NULL练习2:会出现什么问题?return 0;getmemory分配的内存地址存储在局部变量p中,函数返回后该地址丢失,导致内存无法释放。尝试打印NULL指针,以及free(str)释放。

2501_90124553的博客 1563

手把手入门YOLO到改进优化教程 | 【P1基础篇】YOLOv8网络架构原理

本节先来学习基础知识,以YOLOv8进行讲解入门, 拿YOLOv8入手掌握YOLO的底层逻辑 ,也可以基于此来轻松学习后面更新的YOLO系列 (大部分YOLO版本的核心思想一致,更新是基于旧版本做结构升级、优化策略,学习成本会越来越低)。

嵌入式阿齐Archie 2万+

函数指针小练习

函数指针是指向函数的指针,可以用来调用函数。它保存了函数的地址,允许通过该指针来调用所指向的函数。函数指针的使用在编写灵活的代码时特别有用,例如回调函数、动态选择函数以及实现策略模式等。

qq_40064717的博客 200

如何懂固高卡以及滚筒轴+平移轴配合运动?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 852

Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)

OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。

yueyeguzhuo的专栏 302

《C++ Primer》练习6.54-6.56:函数指针定义并调用

《C++ primer》练习6.54-6.56:函数指针定义并调用

subtitle_的博客 285

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

函数指针练习与理解

#include <stdio.h> #include <stdlib.h> int add(int a, int b){ return a+b; } int main() { int (*fn)(int, int)=add; if ( *fn == &add) puts("*fn == &add\n"); if ( *fn == add) puts("*fn == add\n"); if ( &fn != a.

zbguohua的专栏 286

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

typedef 函数指针 小练习

定义一个函数指针类似:int (*ptr)(int a,int b);ptr只能指向同参数同返回值类型的函数名,相当于内存中函数代码块的首地址。  typedef可以实现简化目的,typedef int (*FP)(int a ,int b),   FP ptr;相当于定义了这种类型的函数指针。 #include typedef int (*FP)(int,int);//可使用FP来定义函数

技术无捷径,一步一脚印 749

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C语言练习篇-8函数指针练习

练习:编写一个函数char_contains(char str[],char c),如果字符串中包含字符c,则返回1,否则返回0,并在main函数中使用函数指针调用。#include <stdio.h>int char_contains(char str[],char c){ //遍历整个字符串 for(int i = 0; i < strlen(str); i++) {

DH_Fantasy的博客 1069

初学C语言——函数指针练习

初学C语言——函数指针练习

qq_65305227的博客 394

CTF PWN练习之函数指针改写

先介绍工具吧! 使用objdump工具可以查看一个目标文件的许多内部信息,objdump有许多可选的参数选项,通过控制这些参数选项可以输出不同的文件信息。 本实验的程序和代码位于/home/test/4目录下,执行objdump -d pwn4可以看到关于pwn4程序的反汇编指令列表,其中-d选项表示进行反汇编操作. 本文涉及相关实验:《CTF PWN练习之函数指针改写》(除了gdb之外,Linux还有许多工具可以帮助我们分析二进制文件。本实验将教会大家使用objdump来查找二进制程序中函数的地址信息,并

蚁景网安学院 637
上一篇: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
下一篇: 输入5个字符串,输出最长的字符串.
sevanco
博客等级 码龄12年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值