如何正确使用数组下标表示法?

Mr'*_*ack 3 c arrays pointers

我试图正确阅读这个:

*(strarray[i]+j)=0;
Run Code Online (Sandbox Code Playgroud)

我理解的是:

strarray[i][++j] = 0;
Run Code Online (Sandbox Code Playgroud)

要么

strarray[i][++j] = '\0';
Run Code Online (Sandbox Code Playgroud)

但并不完全一样.怎么能正确写成数组下标符号?

Sou*_*osh 5

使用postfix数组下标表示法,

*(strarray[i]+j)=0;
Run Code Online (Sandbox Code Playgroud)

将会

 strarray[i][j]=0;
Run Code Online (Sandbox Code Playgroud)

引用C11标准,章节§6.5.2.1,数组下标

后缀表达式后跟方括号中的表达式[]是数组对象元素的下标名称.下标操作符的定义[]E1[E2]相同(*((E1)+(E2))).[...]

在您的情况下,您可以考虑E1as strarray[i]E2as j.