服务器之家

服务器之家 > 正文

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

时间:2022-01-05 16:05     来源/作者:长路不漫漫

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

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

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

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

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

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

 

第一次打印

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

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

 

第二次打印

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

我们这里打印结果是ER

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

 

第三次打印

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

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

所以我们这里打印ST

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

 

第四次打印

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

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

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

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

 

总结

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

原文链接:https://blog.csdn.net/qq_58259923/article/details/120257041

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部