Я протестировал два различных варианта подобного кода, предположим, у меня есть массив символов
char x[]="snow comes in winter ";
затем следующий код
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char x[]="snow comes in winter ";
int k=0;
int n=3;
cout<<x+n-k+1<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
отпечатков "comes in winter "
при следовании
#include <iostream>
#include <string.h>
using namespace std;
int main(){
//char x[]="snow comes in winter ";
int a[]={12,3,2,4,5,6,7};
int k=0;
int n=3;
cout<<a+n-k+1<<endl;
return 0;
}
отпечатков 0xbffd293c
если мы изменим это немного
#include <iostream>
#include <string.h>
using namespace std;
int main(){
//char x[]="snow comes in winter ";
int a[]={12,3,2,4,5,6,7};
int k=0;
int n=3;
cout<<*(a+n-k+1)<<endl;
return 0;
}
печать № 5.
поэтому мой вопрос: почему мы можем так легко получить доступ к массиву символов? какова его главная причина? Мне очень любопытно, и, пожалуйста, кто-нибудь может мне объяснить?