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
#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
什么
2[p]
和6[p]
是什么意思?
2[p]
相当于p[2]
和6[p]
相当于p[6]
。
对于任何有效的指针或数组p
和索引i
,表达式p[i]
等于*(p + i)
。并且由于commutative property的增加*(p + i)
等于*(i + p)
,其然后等于i[p]
。
简而言之,2[p]
与p[2]
相同。
http://c-faq.com/aryptr/joke.html –
'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