如果有二维数组short int a[4][5];那么 a[i] 就不是下标变量,而是地址:&a[i][0]所以 a[i]+j 是 a[i] 这个单元所在地 的 下面 的 第 j 个 元素的 地址a[i]+j 等于 &a[i][0] + j * sizeof(short int) -- 加的这项东西 就是 j乘2 个 字节。 老谭的书很老了。现在的 int 默认 是 4 字节。int a[4][5]; a[i]+j 是 :&a[i][0] + j * sizeof(int) -- 加的这项东西 就是 j乘4 个 字节char a[4][5]; a[i]+j 是 :&a[i][0] + j * sizeof(char) -- 加的这项东西 就是 j乘1 个 字节double a[4][5]; a[i]+j 是 :&a[i][0] + j * sizeof(double) -- 加的这项东西 就是 j乘8 个 字节