原创 “考考你的C指针”题解『原』

2007-12-18 18:20 3298 7 7 分类: MCU/ 嵌入式

    前面几天我贴下《C语言解惑》的一个C指针程序,呵呵,放在我的百度空间和EDN空间,总算我百度的一个网友做出来了。先不说答案,且听我如果解答这怪题。



#include<stdio.h>

char *c[]={

    "ENTER",

    "NEW",

    "POINT",

    "FIRST"

};

char **cp[]={c+3,c+2,c+1,c};

char ***cpp=cp;

int main(void)

{

    printf("%s",**++cpp);

    printf("%s   ",*--*++cpp+3);

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

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

    return 0;

}





呵呵,我解释下char *c[]c是一个数组名,数组里面的元素是一个指针,这个指针指向的是一个字符串cpp的结构用语言描述下,cpp是一个地址,这个地址里面的内容放的是cpcp是个什么东西呢,也是一个地址,这个地址里面的内容放的是c+3,而c+3也是一个地址,其地址是字符串 FIRST\0
的首地址;现在我把cpp初始化的结构画出来,如下:


47ea1da8-d9aa-4ad8-b6b8-bc0c5ef9e84b.JPG



    相信大家应该可以解决这个程序问题,如果还不能,建议去看看《C和指针》。哦,对了,忘了说答案的,答案是POINTER 
STEW











文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条