面试题:三级指针问题

来源:互联网 发布:tsp问题蚁群算法总结 编辑:程序博客网 时间:2024/05/16 05:06

当我第一眼看到这道题,内心是崩溃的,怎么会有这么复杂的题目,但是细心研究,自有门道。

做这道题,首先应对指针数组,二级指针,三级指针有一定的了解,我的一篇文章《总结C语言指针部分的知识》里有提到。

首先,来看看结果:


以下是我的思路:此题可画图来分析:


这个题的指向关系就是这样,通过画图解决,很明确:

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

cpp指向cp的首地址,++cpp则指向cp的第二个的地址,然后解引用,可以访问到“POINT”的首地址,所以输出:POINT



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

cpp继续前置++,那么cpp此时指向cp的第三个的地址,解引用,指向“”NEW“的首地址,”在自减解引用,得到“”ENTER“”的首地址,再+3,则指向E,所以输出ER


第三个和第四个,相同的思路:

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


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




原创粉丝点击