我已经测试的与之相似代码的两个不同varianat不同类型的阵列,假设我有字符数组不同的行为与
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. 所以我的问题是,为什么我们可以在字符数组的情况下访问这么容易?什么是它的主要原因是什么?我很curiousy并请可能有人请解释一下?
你能澄清你的问题吗? – Griwes
ok为什么它显示出不同类型的数组的不同结果?(在这种情况下,给出了char和integer数组) –