当前位置: 首页 > news >正文

关于指针运算的一道题

目录

刚看到这道题的时候我也和大多数小白一样感到无从下手,但是在我写这篇博客的前几分钟开始我对这道题有了一点点的理解。所以我就想着趁热打铁,写一篇博客来记录一下我的想法。

题目如下:

画图:

逐一解答:

题一: 

**++cpp=**(cpp+1)=*(c+2)=POINT的地址

题2:

*--*++cpp+3=*--*(cpp+1)+3=*--*(cp+2)+3=*(--(c+1))+3=*c+3=ENTER地址+3=第二个E的地址

​编辑

第三题:

*cpp[-2]+3=*(cpp-2)+3=*(cp)+3=*(c+3)+3=FIRST的首元素地址+3=S的地址。使用%s进行打印,所以结果是ST。

 第四题:

结语:


刚看到这道题的时候我也和大多数小白一样感到无从下手,但是在我写这篇博客的前几分钟开始我对这道题有了一点点的理解。所以我就想着趁热打铁,写一篇博客来记录一下我的想法。

题目如下:

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;
}

画图:

小牛儿本身就是一个天生愚笨的人,所以画图是解决这类问题必不可少的利器。

现在我们根据创建的变量之间的指向关系:
 

char *c[] = {"ENTER","NEW","POINT","FIRST"};char**cp[] = {c+3,c+2,c+1,c};char***cpp = cp;

来画一下表示两个字符指针数组变量,一个字符指针变量以及四个字符串之间的指向的图:

 

逐一解答:

题一: 

 printf("%s\n", **++cpp);

**++cpp=**(cpp+1)=*(c+2)=POINT的地址

 传入POINT的地址并使用%s打印,说以结果就是POINT。

题2:

 printf("%s\n", *--*++cpp+3);

*--*++cpp+3=*--*(cpp+1)+3=*--*(cp+2)+3=*(--(c+1))+3=*c+3=ENTER地址+3=第二个E的地址

 

 结果用%s打印,所以是ER。

第三题:

 printf("%s\n", *cpp[-2]+3);

*cpp[-2]+3=*(cpp-2)+3=*(cp)+3=*(c+3)+3=FIRST的首元素地址+3=S的地址。使用%s进行打印,所以结果是ST。

 第四题:

 printf("%s\n", cpp[-1][-1]+1);

cpp[-1][-1]=(*(*(cpp-1))-1)+1=(*(c+2-1))+1=(*(c+1))+1=NEW的首元素加一,指向的就是E,

使用%s打印打印的就是EW。

结语:

以上就是我今天分享的全部内容了,希望对大家有所帮助。如果对你有用让你心情变好的话希望你能给我点个赞支持我一下。

http://www.lryc.cn/news/36226.html

相关文章:

  • 【论文简述】Learning Optical Flow with Kernel Patch Attention(CVPR 2022)
  • Java学习-MySQL-列的数据类型
  • 终端配色-Docker容器终端
  • SQL基础培训04-插入数据
  • Apache HTTP Server <2.4.56 mod_proxy 模块存在请求走私漏洞(CVE-2023-25690)
  • SpringBoot 集成 elasticsearch 7.x和对应版本不一致异常信息处理
  • 求职季必看系列:Java如何高效面试?
  • 点云分割预研
  • 【数据结构】栈和队列 (栈 栈的概念结构 栈的实现 队列 队列的概念及结构 队列的实现 栈和队列面试题)
  • Moonbeam生态说|解读2023年Web3发展的前景和亮点
  • 【刷题笔记】--二分-P2440 木材加工
  • netstat 命令详解
  • 分布式 微服务
  • Day912.多环境配置隔离 -SpringBoot与K8s云原生微服务实践
  • Imx6ull交叉编译nginx
  • 阿里云短信验证
  • Excel常用可视化图表
  • 虹科分享 | 网络流量监控 | 数据包丢失101
  • 毕设常用模块之舵机介绍以及使用方法
  • 残酷现实:大部分的App小程序,日活<100
  • excel 一对多数据查询公式 经典用法
  • Zookeeper3.5.7版本——客户端命令行操作(节点删除与查看)
  • 一句话设计模式6:享元模式
  • 【C语言进阶】文本与二进制操作文件,优化通讯录。
  • CleanMyMac X4.20最新Mac系统垃圾清理工具
  • 为什么做知识管理,就想选择Baklib呢?
  • Spring Cloud融合gateway自带GatewayFilter使用 | Spring Cloud 15
  • SVN 版本控制软件
  • 全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例
  • (蓝桥真题)分果果(动态规划)