我在下面提到的那种代码中遇到了一个带有函数调用和数组索引的语句。在这个语句中,s=o.init()[-1] 的返回值是 a1[0]。我不清楚它是如何工作的,这个语句 o.init()[-1] 会做什么?我知道 0.init() 会调用函数但是 [-1] 指定了什么? 请帮忙解决这个问题?
#include<iostream>
using namespace std;
class a
{
char a1[1000];
public:
a()
{
a1[0]='a';
}
char* init()
{
cout<<"value of a1 is"<<a1<<endl;
return a1+1;
}
};
int main()
{
a o;
char s;
s=o.init()[-1];
cout<<"value of s is"<<s<<endl;
}