函数指针/逗号表达式/不用if语句完成的字母输出题

1.函数指针用的不是那么频繁的一个操作:

下面是代码演示:

在这个int (*jump)(int);中 jump是这个指针变量名称,第一个int是指针类型,第二个int是指的这个指针所指的函数参数是int类型的。

#include <stdio.h>// 定义一个符合函数指针要求的函数
int add(int num) {return num + 1;
}int main() {int (*jump)(int);  // 声明函数指针jump = add;  // 将函数指针指向add函数int result = jump(5);  // 通过函数指针调用函数printf("结果是: %d\n", result); return 0;
} 

2.逗号表达式:

在 C 语言中,逗号表达式是由逗号运算符 , 连接起来的多个表达式。其一般形式为:

表达式1, 表达式2, …, 表达式n

基本特性

  • 运算顺序:逗号表达式从左到右依次计算各个子表达式的值。例如对于 a = 3, b = 5, c = a + b,先计算 a = 3 (此时 a 的值变为 3 ),接着计算 b = 5 (b 的值变为 5 ),最后计算 c = a + b (c 的值为 8 )。
  • 返回值:整个逗号表达式的值是最后一个子表达式的值。比如在 (x = 3 * 5, x * 4), x + 5 中,先计算 x = 3 * 5 (x 变为 15 ),接着 x * 4 的结果被忽略,因为逗号表达式取最后一个子表达式的值,所以最后计算 x + 5 ,整个表达式的值为 20 (前提是 x 在此之前已正确声明 )。

常见用途

  • 在循环中同时执行多个操作
for (int i = 0, j = 10; i < 5 && j > 5; i++, j--) {// 循环体printf("i = %d, j = %d\n", i, j);
}

这里在 for 循环的初始化部分 int i = 0, j = 10 和更新部分 i++, j-- 使用逗号表达式,能够同时对多个变量进行初始化和更新操作。

3.笔试题 :

--不用if语句, 将一个字母组成的字符串,计算出每个字母的出现次数,按照字母大小升序输出。

这道题也用到了逗号表达式

void countArray(char ch[])
{int array[26] = { 0 };int len = strlen(ch);for (int i = 0; i < len; i++){char c = tolower(ch[i]);int index = c - 'a';array[index]++;}//逗号表达式和三目运算符int j = 0;while (j < 26){((array[j] > 0) ? printf("%c:%d", j +'a', array[j]):0, j++);}
}

--合并降序链表:

struct LNode
{int val;struct LNode* next;};struct LNode* merge_list(struct LNode* L1, struct LNode* L2)
{struct LNode* dummy;dummy->next = NULL;struct LNode* tail = dummy;while (L1&&L2){if (L1->val >= L2->val){tail->next = L1;L1 = L1->next;}else{tail->next = L2;L2 = L2->next;}tail = tail->next;}tail->next = (L1 != NULL) ? L1 : L2;return dummy->next;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp报毒

uniapp打包的apk&#xff0c;装机量多了就开始报毒&#xff0c;尝试了多种解决办法都无解&#xff01;&#xff01; 去某宝&#xff0c;解决一次50-100不等&#xff0c;并且没有售后&#xff0c;掉了重新做包&#xff0c;很是无解&#xff0c;包月价格更是离谱。 为此自行测试…

IIS EXPRESS 虚拟目录经验谈!

最近在给客户开发一个事件提醒软件&#xff0c;用的是c# 版本是vs2022&#xff0c;在运行调试程序时&#xff0c;电脑会自动启动IIS Express,电脑右小角出现两个虚拟目录&#xff0c;对应两个端口&#xff0c;图示如下&#xff1a; 只能点击选择http://localhost:52726&#xf…

小程序配置

注册小程序账号和安装开发工具 参考文档&#xff1a;注册小程序账号和安装开发工具https://blog.csdn.net/aystl_gss/article/details/127878658 HBuilder新建项目 填写项目名称&#xff0c;选择UNI-APP&#xff0c;修改路径&#xff0c;点击创建 manifest.json 配置 需要分别…

左叶子之和 找左下角的值 路径总和

1.计算给定二叉树的所有左叶子之和。 #include <bits/stdc.h> using namespace std; struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) { valx; leftNULL; rightNULL; } }; int findsum(T…

Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测

SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-LSTM-Multihead-Attention霜冰算法…

996引擎-自定义属性-方法2:setitemcustomabil

996引擎-自定义属性-方法2:setitemcustomabil 先看下效果测试NPC补全测试代码辅助表公式setitemcustomabil 总结参考资料先看下效果 测试NPC 为了方便测试,先准备个NPC require("Envir/QuestDiary/ex/init.lua"); require("Envir/QuestDiary/utils/init.lu…

苹果电脑杀毒软件CleanMyMac

杀毒软件在苹果家族中是一个小众软件&#xff0c;百度搜索苹果电脑杀毒软件&#xff0c;可能各种杀软良莠不齐&#xff0c;因为在这个市场非常小&#xff0c;绝大多数都是冲着“清理”去的&#xff0c;而不是杀毒。最近测试了一款Mac电脑杀毒软件&#xff0c;杀毒效果也是一般般…

pandas表格内容比较

前阵子来了一个211大学实习生&#xff08;小男生&#xff09;&#xff0c;要比较2个版本字段的变化&#xff0c;辅助完成系统升级字段替换&#xff0c;要求找出哪些字段是新增的&#xff0c;哪些字段是删除的&#xff0c;哪些字段是属性信息修改的&#xff0c;要求半天时间搞定…

【SpringBoot】最佳实践——JWT结合Redis实现双Token无感刷新

JWT概览 JWT概念 JWT是全称是JSON WEB TOKEN&#xff0c;是一个开放标准&#xff0c;用于将各方数据信息作为JSON格式进行对象传递&#xff0c;可以对数据进行可选的数字加密&#xff0c;可使用RSA或ECDSA进行公钥/私钥签名。JWT最常见的使用场景就是缓存当前用户登录信息&am…

面试系列|蚂蚁金服技术面【1】

哈喽&#xff0c;大家好&#xff01;今天分享一下蚂蚁金服的 Java 后端开发岗位真实社招面经&#xff0c;复盘面试过程中踩过的坑&#xff0c;整理面试过程中提到的知识点&#xff0c;希望能给正在准备面试的你一些参考和启发&#xff0c;希望对你有帮助&#xff0c;愿你能够获…

eBPF 实时捕获键盘输入

eBPF 实时捕获键盘输入 本文将带你一步步实现一个基于eBPF kprobe的键盘记录功能&#xff0c;通过Go语言配合libbpfgo&#xff0c;你将学会如何无损地监控系统键盘输入&#xff0c;并从中获取实时数据&#xff0c;进一步提高系统安全和监控能力。 1. 说明 本文属于专栏 Go语言…

APB-清华联合腾讯等机构推出的分布式长上下文推理框架

APB (Accelerating Distributed Long-Context Inference by Passing Compressed Context Blocks acrossGPUs)是清华大学等机构联合提出的分布式长上下文推理框架。通过稀疏注意力机制和序列并行推理方式&#xff0c;有效解决了大模型处理长文本时的效率瓶颈。APB采用更小的Anch…

数据库分库分表介绍

分库分表是解决数据库性能瓶颈的常用技术手段&#xff0c;主要用于应对数据量过大、读写压力过高的问题。通过将数据分散到多个数据库或表中&#xff0c;可以提高系统的扩展性和性能。 1. 分库分表的核心概念 &#xff08;1&#xff09;分库 定义&#xff1a;将数据分散到多个…

#mapreduce打包#maven:could not resolve dependencies for project

打包报错&#xff1a; #报错信息&#xff1a; [ERROR] Failed to execute goal on project mapreduce_teacher1: Could not resolve dependencies for project org.example:mapreduce_teacher1:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.apache.hive:hive-exe…

Rabit

之前发过rabit了&#xff0c;所以这里不再赘述&#xff0c;讲讲原理 在线Rabbit加密 | Rabbit解密- 在线工具 (sojson.com) rabbit加密原理 Rabbit加密算法是一种流密码算法&#xff0c;由Daniel J. Bernstein设计&#xff0c;并被广泛用于多种加密和安全通信应用中。它的设…

【A2DP】深入解读A2DP中通用访问配置文件(GAP)的互操作性要求

目录 一、模式支持要求 1.1 发现模式 1.2 连接模式 1.3 绑定模式 1.4 模式间依赖关系总结 1.5 注意事项 1.6 协议设计深层逻辑 二、安全机制&#xff08;Security Aspects&#xff09; 三、空闲模式操作&#xff08;Idle Mode Procedures&#xff09; 3.1 支持要求 …

模型蒸馏系列——开源项目

推荐项目&#xff1a;MiniMind&#xff08;低成本全流程训练框架&#xff09; GitHub&#xff1a;https://github.com/jingyaogong/minimind 核心特性&#xff1a;完整实现从数据清洗到模型部署的全流程&#xff0c;支持单卡低成本训练&#xff0c;代码全透明&#xff0c;适合…

【软考-架构】13.1、软件架构概述-构件技术

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 ✨【重点】系统架构设计软件架构概述软件架构设计与生命周期构件&#x1f31f;软件架构风格数据流风格调用/返回风格独立构件风格虚拟机风格仓库风格闭环控制风格C2体系结…

《Android启动侦探团:追踪Launcher启动的“最后一公里”》

1. 开机仪式的“黑屏悬案” 当Android设备完成开机动画后&#xff0c;某些产品会陷入诡异的“黑屏时刻”——仿佛系统在玩捉迷藏。此时&#xff0c;**Launcher&#xff08;桌面&#xff09;**就是躲猫猫的主角。我们的任务&#xff1a;揪出Launcher何时完成启动&#xff0c;终…

Redis事务与管道

Redis事务 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的所有命令都会序列化&#xff0c;按顺序地串行执行而不会被其他命令插入&#xff0c;不许加塞。 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令。 Redis事务VS数据库事务 常用…