温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++指针的示例分析

发布时间:2021-09-13 17:26:47 来源:亿速云 阅读:168 作者:小新 栏目:开发技术

小编给大家分享一下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;
}

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

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++指针的示例分析

以上是“C++指针的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI