前面几天我贴下《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是一个地址,这个地址里面的内容放的是cp,cp是个什么东西呢,也是一个地址,这个地址里面的内容放的是c+3,而c+3也是一个地址,其地址是字符串 FIRST\0
的首地址;现在我把cpp初始化的结构画出来,如下:
相信大家应该可以解决这个程序问题,如果还不能,建议去看看《C和指针》。哦,对了,忘了说答案的,答案是POINTER
STEW。
文章评论(0条评论)
登录后参与讨论