gpt4 book ai didi

c - C 中的二维数组,t+= tab[i][j] 是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:42 25 4
gpt4 key购买 nike

int tab[][3] = {
{1, 2, 3},
{6, 5, 4},
{7, 8, 9}
};

main(){
int i, j, t=0;
for(i=2, j=0; i; i--, j++){
t += tab[i][j++];
printf("%d", t);
}

我不明白为什么输出是11,首先i = 2; (7, 8, 9) and j = 0 然后 t += tab[i][j++] 这意味着 7, 8, 9 + (j++ 现在是 1) (2, 5, 8) 这意味着 7 + 8 + 9 + 2 + 5 + 8?我不明白这个。 t += tab[i][j++]

最佳答案

两件事:

首先,您似乎假设 t += tab[i][j] 以某种方式向 t 添加了一个完整的 vector 或一行,即类似于 (7,8,9)。然而,对 tab[i][j] 的访问代表一个特定的单元格值(不是一行),并且对于 i==2, j==0,这表示 tab[2][0] 并产生值 7

其次,请注意您有两条递增 j 的语句,一条在 for 部分,另一条在 tab[i][j++](注意 j++)。所以当 i 减少到 1 时,j 实际上增加到 2,这样第二个值将是 tab[1][2],即4

那么 7 + 4 = 11 应该不再是一个惊喜 :-)。

希望对您有所帮助。

关于c - C 中的二维数组,t+= tab[i][j] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com