我正试着正确阅读:

*(strarray[i]+j)=0;

我当时的理解是:
strarray[i][++j] = 0;


strarray[i][++j] = '\0';

但不完全一样。如何将它正确地写成数组下标符号?

最佳答案

使用后缀数组下标符号,

*(strarray[i]+j)=0;


 strarray[i][j]=0;

引用C11标准,第6.5.2.1章,数组订阅
后缀表达式后跟方括号[]中的表达式是下标的
数组对象元素的指定。下标运算符的定义[]
是指E1[E2](*((E1)+(E2)))相同。[…]
在您的情况下,您可以将E1视为strarray[i],将E2视为j

关于c - 如何正确使用数组下标符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39499623/

10-15 00:17