下記のようなコードの関数呼び出しと配列インデックスを含むステートメントに出くわしました。このステートメントでは、s = o.init()[-1]はa1[0]の値を返します。私はそれがどのように機能するか、このステートメントo.init()[-1]が何をするのか、0.init()が関数を呼び出すことを知っていますが、[-1]は何を指定するのかという概念が明確ではありません?plsはこのクエリを解決するのに役立ちますか?
#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;
}