纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

C++指针 一道面试题教你轻松玩转C++指针

长路不漫漫   2021-09-13 我要评论
想了解一道面试题教你轻松玩转C++指针的相关内容吗,长路不漫漫在本文为您仔细讲解C++指针的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C++,C++指针,下面大家一起来学习吧。

提到指针,真是让人头皮发麻,今天笔者来带你玩转指针。

话不多说先看这道面试题 (注意细节)

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

 是不是看着看着就迷糊了,没关系,咱们画图来谈个究竟。

 这样一来看起来是不是明显多了,但还是要仔细分析才能保证万无一失。

第一次打印

先进行++p再进行两次解引用.见下图可知我们打印 POINT

 第二次打印

先进行 ++CPP    然后解引用  再进行 -- 操作将C+1改变为C  接着再一次解引用 最后+3

我们这里打印结果是 ER

 第三次打印

我们先进行CPP[-2]的操作,即相当于 *(CPP-2)但也要注意这里我们CPP的值并未发生改变

在这里我们(CPP-2)的指向用黑线表示,然后再一次解引用,最后+3,此时指向了图中ST

所以我们这里打印ST

 第四次打印

CPP[-1]即 *(CPP-1) 这里的CPP[-1][-1] 即相当于*( *(CPP-1)-1 ) 最后+1指向EW

 最后我们运行程序来看看结果

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!


相关文章

猜您喜欢

  • C语言内存函数 C语言的编程之美之内存函数

    想了解C语言的编程之美之内存函数的相关内容吗,小码农UU在本文为您仔细讲解C语言内存函数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C语言,C语言内存函数,下面大家一起来学习吧。..
  • Spring JdbcTemplate Spring框架的JdbcTemplate使用

    想了解Spring框架的JdbcTemplate使用的相关内容吗,Hudie.在本文为您仔细讲解Spring JdbcTemplate的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring,JdbcTemplate,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.ben10gamesx.com 【Win11软件站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式