2017-02-11 164 views
0
#include <stdio.h> 
int main(void) 
{ 
    char c[]="GATECSIT2017"; 
    char *p=c; 
    printf("%s", c+2[p]-6[p]-1); 
    return 0; 
} 

2[p]6[p]是什么意思? 请提供详细的解释。2 [p]和6 [p]是什么意思?

输出:17

+1

http://c-faq.com/aryptr/joke.html –

+1

'2 [p]'与p [2]相同,'6 [p]'与p [6]相同' 因此p [2] ='T'且p [6] ='I'即c + 84-73 -1即c + 10。 (用字符的ASCII值代替 'c [10]'指向字符串中的'1'当我们将它打印为从第10个索引开始的字符串时,输出将是17 – Rishi

回答

2

什么2[p]6[p]是什么意思?

2[p]相当于p[2]6[p]相当于p[6]

4

对于任何有效的指针或数组p和索引i,表达式p[i]等于*(p + i)。并且由于commutative property的增加*(p + i)等于*(i + p),其然后等于i[p]

简而言之,2[p]p[2]相同。

相关问题