笔试题讲解(C语言进阶)

news2024/12/24 19:41:39

目录

前言

1、题目

2、答案

3、解析

结语


前言

        “纸上得来终觉浅,绝知此事要躬行”。本篇通过对指针实际案例的分析,由浅入深,来加强我们对指针的理解。

1、题目

        这是一道难题,小心哦。

#include <stdio.h>
int main()
{
	char* c[] = { "ENTER","NEW","POINT","FIRST" };
	char** cp[] = { c + 3,c + 2,c + 1,c };
	char*** cpp = cp;
	printf("%s\n", **++cpp);  
	printf("%s\n", *-- * ++cpp + 3);
	printf("%s\n", *cpp[-2] + 3);
	printf("%s\n", cpp[-1][-1] + 1);
	return 0;
}

       这里先附上操作符优先级,这个是要记住的:

        请通过自己的方法解出此题,后面公布答案,对比一下。

2、答案

        

        答案为:POINT        ER        ST        EW

        此题很难,涉及到很多细节上的知识点,如果能够搞懂的话,说明你对指针的了解已经到了一定高的境界。下面看解析。

3、解析

        上面是cpp   cp   c 之间的关系。

        对于  **++cpp;先对cpp+1指向下一个地址也就是cp中的第二个元素:c+2。然后对其经行两次解引用,第一次解引用得到c+2,第二次解引用得到c+2的指向的内容(c的第三个元素)POINT,于是打印出“POINT”。计算完后,现在的三个指针的情况如下:

        对于  *-- * ++cpp + 3; 先运算++cpp,因为在上面进行了一次++cpp运算,这是第二次++cpp,所以指向cp第三个元素c+1,然后解引用得到cp[2],此时再运算--,得到指向c的指针,并存放到cp[2]里面,cp[2]变成了指向c的指针。再解引用得到c,c指向"ENTER",c+3指向"ER",因此打印出来为"ER"。此次输出完成,三个指针情况如下:

        下面输出:*cpp[-2]+3;  首先cpp和[-2]结合,得到cp第一个元素,也就是c+3,然后解引用c+3得到指向"FIRST"的指针,再+3得到指向"ST"的指针,最后输出为"SE"。这次运算没有改变三个指针的指向。现在三个指针还是如下:

        最后分析:cpp[-1][-1] + 1;首先cpp[-1]结合得到c+2。然后再和[-1]结合得到c+1指向的内容"NEW"。最后,+1,指向"EW"。输出为"EW"。

结语

        本题讲解完毕,此题值得我们去细细琢磨,在这样的练习中提升我们对指针的理解。

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

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

相关文章

蓝桥杯C++竞赛常用库函数介绍

文章目录 前言一、二分查找1. 二分查找的前提2.binary_search函数3.lower_bound函数和upper_bound函数4.蓝桥杯例题 二、最值查找1. min和max函数2.min_element和max_element函数3.nth_element函数4.蓝桥杯例题 三、排序1.sort函数2.sort自定义比较函数,或lambda表达式(匿名函数…

企业计算机服务器中了crypt勒索病毒怎么办,crypt勒索病毒解密数据恢复

计算机服务器设备为企业的生产运营提供了极大便利&#xff0c;企业的重要核心数据大多都存储在计算机服务器中&#xff0c;保护企业计算机服务器免遭勒索病毒攻击&#xff0c;是一项艰巨的工作任务。但即便很多企业都做好的了安全运维工作&#xff0c;依旧免不了被勒索病毒攻击…

hexo+gitee免费打造个人网站导航

一、准备工作 本文在win10系统下进行环境搭建 1.可参考官方文档 hexo官方网站 Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown&#xff08;或其他标记语言&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页 2.配置环境 这…

最新版opencv4.9安装介绍,基本图像处理详解

文章目录 一、什么是OpenCV &#xff1f;二. OpenCV 安装1. 下载地址2.安装命令&#xff1a;pip install opencv-python 三、图像基础1. 基本概念2. 坐标系3. 基本操作&#xff08;彩色图片&#xff09;&#xff08;1&#xff09;读取图片&#xff1a;cv2.imread( )&#xff08…

PCB共模辐射是如何产生的

目录 引言 模型分析01 模型分析02 模型分析03 模型分析04

记一次供应链的heapdump泄露到云接管

本文由掌控安全学院 -杳若 投稿 打点 开局一张图 分析 框架分析 首先发现使用的是前端的vue框架 注意/#/&#xff0c;存在的话基本都是vue&#xff0c;这时候就要从找接口开始 浅试登录 任意输入账号密码点击登录 发现校验了手机号的问题&#xff0c;这时候换个功能点 浅…

【OpenAI Sora】 如何使用:最新详细教程-新手小白必看

Sora 是什么&#xff1f; 2024年2月16日&#xff0c;OpenAI 在其官网上面正式宣布推出文本生成视频的大模型 Sora: https://openai.com/sora &#xff08;PS&#xff1a;目前 openai 官方还未开放 sora 灰度&#xff0c;不过根据文生图模型 DALLE 案例&#xff0c;一定是先给…

Spring Cloud部署篇1——Jar包部署至CentOS云服务器

一、项目介绍 系统模块 com.mingink |--mingink-api // 接口模块 | └──mingink-api-system // 系统接口 |--mingink-common // 通用模块 | └──mingink-common-core // 系统接口 |--mingink-gateway…

未来已来:数字孪生与智慧园区的深度融合

目录 一、数字孪生技术的概述 二、智慧园区的概念和发展 三、数字孪生与智慧园区的深度融合 四、数字孪生与智慧园区的未来展望 五、结论 随着科技的飞速发展&#xff0c;我们正处在一个日新月异的时代。数字孪生技术作为新兴的前沿科技&#xff0c;已经引起了全球范围内的…

喜报 | 2023上海文创资金拟支持名单公布,优积科技上榜

2023年8月9日&#xff0c;上海市文化创意产业推进领导小组办公室公布了《2023年上海市促进文化创意产业发展财政扶持资金拟支持项目&#xff08;第一批&#xff09;公示》&#xff0c;优积科技本次以“人工智能技术赋能模块化建筑设计的创新应用”项目荣获该资金财政扶持。 优积…

如何用GPT进行成像光谱遥感数据处理?

第一&#xff1a;遥感科学 从摄影侦察到卫星图像 遥感的基本原理 遥感的典型应用 第二&#xff1a;ChatGPT ChatGPT可以做什么&#xff1f; ChatGPT演示使用 ChatGPT的未来 第三&#xff1a;prompt 提示词 Prompt技巧&#xff08;大几岁&#xff09; 最好的原则和策…

QT常用类

五、常用类 QString 字符串类&#xff08;掌握&#xff09; QString是Qt的字符串类&#xff0c;与C的std::string相比&#xff0c; 不再使用ASCII编码。QString使用的是Unicode编码。 QString中每个字符都是一个16位的QChar&#xff0c;而不是8位的char。 QString完全支持中文&…

模板(类模板)---C++

模板目录 2.类模板2.1 类模板语法2.2 类模板与函数模板区别2.3 类模板中成员函数创建时机2.4 类模板对象做函数参数2.5 类模板与继承2.6 类模板成员函数类外实现2.7 类模板分文件编写2.8 类模板与友元2.9 类模板案例 2.类模板 2.1 类模板语法 类模板作用&#xff1a; 建立一个…

2024 2.17~2.23 周报

一、本周计划 学习如何缝合模块&#xff0c;跑代码InversionNet、想idea并实验&#xff0c;准备开题报告&#xff0c;学习python基础语法 二、完成情况 1 学习如何在代码中加入模块 可添加的模块如&#xff1a; 通道注意力CA 空间注意力SA self attention变体 频域快速傅里…

漫漫数学之旅031

文章目录 经典格言数学习题古今评注名人小传 - 经典格言 如果没有数学知识&#xff0c;这个世界的事物是无法搞清楚的。——罗杰培根&#xff08;Roger Bacon&#xff09; 好的&#xff0c;各位看官&#xff0c;让我们来听听罗杰培根这位中世纪的“科学老顽童”是怎么说的&…

openGauss学习笔记-227 openGauss性能调优-系统调优-其他因素对LLVM性能的影响

文章目录 openGauss学习笔记-227 openGauss性能调优-系统调优-其他因素对LLVM性能的影响 openGauss学习笔记-227 openGauss性能调优-系统调优-其他因素对LLVM性能的影响 LLVM优化效果不仅依赖于数据库内部具体的实现&#xff0c;还与当前所选择的硬件环境等有关。 表达式调用C…

CrossOver2024虚拟机软件的优缺点分别是什么?

CrossOver虚拟机软件的优缺点分别如下&#xff1a; 优点&#xff1a; 无需双系统&#xff1a;用户可以在Mac或Linux系统上直接运行Windows应用程序&#xff0c;无需安装双系统&#xff0c;从而节省了硬盘空间并避免了系统切换的麻烦。易于安装和使用&#xff1a;CrossOver具有…

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

初探Web客户端追踪技术

前言 案例1 当我们首次浏览网站时&#xff0c;在网页的下方位置经常会出现提示&#xff0c;询问是否允许使用 Cookie 来提供服务和流量。为了不被挡住浏览的内容&#xff0c;我们经常会下意识地点击“接受”&#xff0c;然后继续浏览。看似无害而有害增强你在这个网站上的体验…

基于springboot财务管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…