*c[];**cp[]和*cpp题目详解
2016-09-12 19:17
197 查看
又是一道笔试题,看着就蛋疼,做着做着就懵逼了,虽然没做对,但试着解释下,下次不能在错了!
结果:
World
lo
Hi
ew
因为:
++cpp:(++cpp)就是&cp[1],就是&&c[2],所以第一行结果为Point,此时cpp已经变为&cp[1]
*--*++cpp+3:(++cpp)就是&cp[2],*++cpp就是c+1就是&c[1],--*++cpp就是&c[0],*--*++cpp就是c[0],*--*++cpp+3就是lo
*cpp[-2]+3:这时cpp变为&cp[2],cpp[-2]就是&cp[0],*cpp[-2]就是cp[0],就是c+3就是&c[3],*cpp[-2]+3就是Hi
cpp[-1][-1]+1:这时cpp还是&cp[2],cpp[-1][-1]就是&cp[1][-1]就是c[1],cpp[-1][-1]+1就是ew
自己画了张图,加深理解,略抽象了。。。
题目:
char *c[] = {"Hello","New","World","SAYHi"}; char **cp[] = {c+3,c+2,c+1,c}; char ***cpp = cp; cout << **++cpp << endl; cout << *--*++cpp + 3<< endl; cout << *cpp[-2] + 3 << endl; cout << cpp[-1][-1] + 1 << endl;
结果:
World
lo
Hi
ew
因为:
++cpp:(++cpp)就是&cp[1],就是&&c[2],所以第一行结果为Point,此时cpp已经变为&cp[1]
*--*++cpp+3:(++cpp)就是&cp[2],*++cpp就是c+1就是&c[1],--*++cpp就是&c[0],*--*++cpp就是c[0],*--*++cpp+3就是lo
*cpp[-2]+3:这时cpp变为&cp[2],cpp[-2]就是&cp[0],*cpp[-2]就是cp[0],就是c+3就是&c[3],*cpp[-2]+3就是Hi
cpp[-1][-1]+1:这时cpp还是&cp[2],cpp[-1][-1]就是&cp[1][-1]就是c[1],cpp[-1][-1]+1就是ew
自己画了张图,加深理解,略抽象了。。。
相关文章推荐
- *c[];**cp[]和*cpp题目详解
- 神州数码软件测试工程师笔试C语言题目详解
- yahoo中国 最近的笔试题目之 cpp二则。
- linux之cp/scp命令+scp命令详解
- ZZ-高级C语言程序员测试必过的十六道最佳题目+答案详解
- 模版详解(模版与宏) 转自:http://www.cppblog.com/zmllegtui/archive/2008/10/28/65316.html
- 【收集】LINUX 命令详解:CP、rm、tar
- linux之cp/scp命令+scp命令详解
- 题目为《java.util.Formatter 详解》的一篇博客地址
- C、CPP const 详解
- 详解华为java华为面试题(转自suningin,个人补充了部分题目参考答案)
- Java常见笔试面试题目深度剖析系列之:Java方法参数传递详解
- ARM中CP的操作指令MCR/MRC详解
- linux之cp/scp命令+scp命令详解
- linux CP 命令详解
- 高级C语言程序员测试必过的十六道最佳题目+答案详解
- CP1300:The Caverns of Mysteriousness [只是题目,无代码]
- ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解
- linux cp命令详解
- ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解