日志档案

发表于 2007-12-18 18:20:40

0

标签: C语言解惑  C指针  

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

    前面几天我贴下《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初始化的结构画出来,如下:


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


系统分类: 嵌入式   |   用户分类: Linux学习   |   来源: 原创   |   【推荐给朋友】

    阅读(577)    回复(0)  

投一票您将和博主都有获奖机会!