免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc

[C] 有多少C程序员认为这是错误的写法 [复制链接]

论坛徽章:
0
发表于 2012-05-12 00:39 |显示全部楼层
回复 48# 东方云滨

不是指向多维数组的(直接的)元素的指针么。

论坛徽章:
0
发表于 2012-05-12 01:06 |显示全部楼层
看起来ISO C还是有点语焉不详。
找到了点有趣的东西:
http://stackoverflow.com/questio ... -behavior-2d-arrays
http://stackoverflow.com/questio ... script-legal-by-the

论坛徽章:
0
发表于 2012-05-12 01:36 |显示全部楼层
另外一个问题:
ISO C规定数组的元素占据连续的存储,但有说不准有trailing padding么?

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
发表于 2012-05-12 01:44 |显示全部楼层
回复 53# 幻の上帝

见15楼:T a[N]; sizeof a == sizeof(T)*N。
该规则分别应用到一维与二维数组,至少[(char*)a, (char*)a+sizeof a)之间是没有padding的。
之外 —— 其实也不是a了 —— 就无从知晓了。

总之,数组本身无padding。trailing padding被计算到每个T当中了233{:3_191:}

论坛徽章:
0
发表于 2012-05-12 08:21 |显示全部楼层
本帖最后由 chinesedragon 于 2012-05-12 08:37 编辑
pmerofc 发表于 2012-05-11 20:11
  1. #include <stdio.h>                              
  2. int main( void )
  3. {
  4.   float score[4][5],*pscore = *score ;
  5.   for( i = 0 ; i < 4 ; i++ )
  6.   {
  7.     for( j = 0 ; j < 5 ; j ++ )
  8.       scanf("%f", pscore + 5 * i + j );
  9.   }
  10.   /*
  11.     其他代码
  12. */
  13.   return 0;
  14. }
复制代码


这个我明白,相当于score[ i ][j];

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2012-05-12 08:30 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2012-05-12 08:32 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2012-05-12 08:38 |显示全部楼层
愿闻其详~~~~~~~~~
pmerofc 发表于 2012-05-12 08:32
回复 55# chinesedragon 问题在于这个“相当于”可能很成问题

论坛徽章:
0
发表于 2012-05-12 08:57 |显示全部楼层
回复 56# pmerofc


这几个写法有什么区别么?除了可读性以外。sizeof(int[4 * 5]) == sizeof(int[4][5]) == sizeof(int) * 4 * 5

论坛徽章:
0
发表于 2012-05-12 08:58 |显示全部楼层
回复 50# OwnWaterloo


    不行,我得换个头像去……{:3_188:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP