Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 数组索引中的后增量和赋值_C - Fatal编程技术网

C 数组索引中的后增量和赋值

C 数组索引中的后增量和赋值,c,C,我遇到了一段我发现很难破译的简洁代码 for (int k = 0; k < count; k++) { C[p=w[T[k]]++] = Y1[k]; CC[p] = Y2[k] } 我无法计算当k=0时数组C和CC将得到什么索引,以及一种轻松读取代码的方法 这就是我一直试图做的 什么时候 重写它。此代码相当于: for (int k = 0; k < count; k++) { p = w[T[k]]++; C[p] = Y1[k]; C

我遇到了一段我发现很难破译的简洁代码

for (int k = 0; k < count; k++)
{
    C[p=w[T[k]]++] = Y1[k];
    CC[p] = Y2[k]
}
我无法计算当k=0时数组
C
CC
将得到什么索引,以及一种轻松读取代码的方法

这就是我一直试图做的

什么时候


重写它。此代码相当于:

for (int k = 0; k < count; k++)
{
    p = w[T[k]]++;
    C[p] = Y1[k];
    CC[p] = Y2[k]
}
for(int k=0;k
这和

for (int k = 0; k < count; k++)
{
    p = w[T[k]];   // For k=0 => w[2]=6 => p=6
    w[T[k]]++;     // For k=0 => increment w[2], so w[2] is 7
    C[p] = Y1[k];  // C[6] = Y1[0]
    CC[p] = Y2[k]  // CC[6] = Y2[0]
}
for(int k=0;kw[2]=6=>p=6
w[T[k]]++;//对于k=0=>增量w[2],因此w[2]是7
C[p]=Y1[k];//C[6]=Y1[0]
CC[p]=Y2[k]//CC[6]=Y2[0]
}

重写它。此代码相当于:

for (int k = 0; k < count; k++)
{
    p = w[T[k]]++;
    C[p] = Y1[k];
    CC[p] = Y2[k]
}
for(int k=0;k
这和

for (int k = 0; k < count; k++)
{
    p = w[T[k]];   // For k=0 => w[2]=6 => p=6
    w[T[k]]++;     // For k=0 => increment w[2], so w[2] is 7
    C[p] = Y1[k];  // C[6] = Y1[0]
    CC[p] = Y2[k]  // CC[6] = Y2[0]
}
for(int k=0;kw[2]=6=>p=6
w[T[k]]++;//对于k=0=>增量w[2],因此w[2]是7
C[p]=Y1[k];//C[6]=Y1[0]
CC[p]=Y2[k]//CC[6]=Y2[0]
}

“拆分”该语句为多个语句,将嵌套索引分隔开,它就会变得清晰。@P.P.我尝试过,但得到了错误的答案。我得到的索引是6和6,但正确的值是7。@Morpheus好吧,把你所做的一切都发布出来,以便其他人能够验证或指出它的错误。此外,这种“聪明”的代码没有太多实际用途。如果我没记错的话,这是一种未定义的行为,在读取内存后可能会发生增量。找到编写此代码的人,并射击他们。或者,如果这违反了你的道德或你居住的地方是非法的,那就向他们扔烂西红柿。把那个语句“拆分”成多个语句,将嵌套索引分开,它就会变得清晰。@P.P.我试过了,但我得到了错误的答案。我得到的索引是6和6,但正确的值是7。@Morpheus好吧,把你所做的一切都发布出来,以便其他人能够验证或指出它的错误。此外,这种“聪明”的代码没有太多实际用途。如果我没记错的话,这是一种未定义的行为,在读取内存后可能会发生增量。找到编写此代码的人,并射击他们。或者,如果这违反了你的道德或你居住的地方是非法的,那就向他们扔烂西红柿。