C语言_1

题目:

#include<stdio.h>

char *c[]={"Enter","New","Point","First"};
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);

 }


解答:


**++cpp:(++cpp)就是&cp[1],就是&&c[2],所以第一行结果为Point,此时cpp已经变为&cp[1]


*--*++cpp+3:(++cpp)就是&cp[2],*++cpp就是c+1就是&c[1],--*++cpp就是&c[0],*--*++cpp就是c[0],*--*++cpp+3就是er


*cpp[-2]+3:这时cpp变为&cp[2],cpp[-2]就是&cp[0],*cpp[-2]就是cp[0],就是c+3就是&c[3],*cpp[-2]+3就是st


cpp[-1][-1]+1:这时cpp还是&cp[2],cpp[-1][-1]就是&cp[1][-1]就是c[1],cpp[-1][-1]+1就是ew


所以结果是:

Point
er
st
ew

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值