C语言的二维数组中a[i]+j这个j为什么表示的是字节数?

看不懂这里,谭浩强版本的C.中说的,但是它下一句就说这个字节为j乘2(整形数值)。。如题上的那个字节数这个字眼看不懂。... 看不懂这里,谭浩强版本的C.中说的,但是它下一句就说这个字节为j乘2(整形数值)。。如题上的那个字节数这个字眼看不懂。 展开
 我来答
金色潜鸟
2014-03-06 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5612万
展开全部
如果有二维数组
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 个 字节
匿名用户
2014-03-07
展开全部
指针变量的增减是按地址进行的,a[i] + j应该表示的是a[i] + j*sizeof(....)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式