1
This question被要求在最近的考試,考生必須找到下列代碼的輸出:這種訪問C字符串中字符的方式是如何工作的?
#include<stdio.h>
#include<string.h>
int main()
{
char * c = "GATECSIT2017";
char *p = c;
printf("%d", (int)strlen(c+2[p]-6[p]-1));
return 0;
}
我開始在C++編碼,所以我不是在C-字符串的專家。在弄亂了代碼之後,我明白它是如何工作的,但有一點我不清楚,就是這種從char *字符串中訪問char的方式。
我的問題是,2[p]
如何獲取索引2處的字符? 它是否解析爲*(p+2)
還是有其他事情?另外,是否有任何文檔或任何文章可以解釋這種行爲?
你說得很清楚。如何解決索引並且+運算符的交換屬性導致2 [p]與p [2]相同。 – RishbhSharma
你能指出一些資源來說明[]的行爲嗎?或者與這個問題有關的其他資源? – RishbhSharma
@RishbhSharma [這是關於數組下標運算符的參考](http://en.cppreference.com/w/c/language/operator_member_access#Subscript)。 –