| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1129 人关注过本帖
标题:tell out the output of the follow code, and explain the reason.
取消只看楼主 加入收藏
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
tell out the output of the follow code, and explain the reason.
程序代码:
#include<iostream>
#include<stdio.h>
using namespace std;
char *c[]={"ENTNG", "NST","AMAZI","FIRBE"};
char** cp[]={c+3, c+2, c+1, c};
char ***cpp= cp;
int main() {
    printf("%s\n",**++cpp);
    printf("%s\n",*--*++cpp+3);
    printf("%s\n",*cpp[-2]+3);
    printf("%s\n",cpp[-1][-1]+1);
}
搜索更多相关主题的帖子: follow reason color 
2011-01-10 20:10
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用hust_sj在2011-1-10 22:32:19的发言:

#include<stdio.h>
char *c[]={"ENTNG", "NST","AMAZI","FIRBE"};   

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

char ***cpp= cp;   

int main() {
    printf("%s\n",**++cpp);    //cpp初始指向cp,++cpp后指向cp+1,*++cpp指向c+2,**++cpp指向"AMAZI"的'A',输出"AMAZI"
    printf("%s\n",*--*++cpp+3);    //cpp初始指向cp+1,++cpp后指向cp+2,*++cpp指向c+1,--*++cpp指向c,*--*++cpp指向"ENTNG"的'E',*--*++cpp+3指向"ENTNG"的'N',输出"NG"
    printf("%s\n",*cpp[-2]+3);    //cpp初始指向cp+1,cpp[-2]相当于*(cpp-2)即cp指向c+3,*cpp[-2]即c+3指向"FIRBE"的'F',*cpp[-2]+3指向"FIRBE"的'B',输出"BE"
    printf("%s\n",cpp[-1][-1]+1);    //cpp初始指向cp+1,cpp[-1]即cp+1指向c+2,cpp[-1][-1]即(cp+1)[-1]即c+1指向"NST"的'S',cpp[-1][-1]+1指向"NST"的'S',输出"ST"
    return 0;
}[]相当于一次解引用*



第一个printf之后,cpp指向哪里?
2011-01-11 00:03
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用hust_sj在2011-1-11 00:42:01的发言:

不是写的很清楚吗?

能不能不要不懂装懂?
2011-01-11 01:12
快速回复:tell out the output of the follow code, and explain the reason.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021320 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved