c语言num2str,(C语言)int num[ ][3] = {{1,2},3,4,5,6}; 为什么是对的?

满意答案

00e27ab806e4881f8254fe7ae8741834.png

smith74865

推荐于 2018.05.06

00e27ab806e4881f8254fe7ae8741834.png

采纳率:52%    等级:9

已帮助:1113人

num是一个多维数组,每行有3个int型元素。由于多维数组的存储方式实际上也是类似于一维数组那样连续存放的,所以对于形如 {1,2,3,4,5,6,7,8,9}这种类型,其实与{{1,2,3}, {4,5,6}, {7,8,9}}这种形式的存放方式是完全一样的,这也是多维数组必须指定除第1个[]中的大小的原因,因为没有后面的大小,C语言是无法正确地区分这片连续内存究竟是几行几列。

而{{}, {}, {}}这种形式则是显示地指明了数组中的每行元素构成。

对于 int num[ ][3] = {{1,2},3,4,5,6}, 由于有了{1,2},所以第一行已经明确了,而第二行则从 3开始,由于每行有3列,所以第二行可以确定为 3,4,5这三个元素,而第三行则只有6这一个元素。由于元素已经全部明确,所以即便没有指定num的行数,其实程序已经很明确第算出了它的行数为3。

Ls说的 “系统自动设定int num[2][3]”是错误的,你自己可以验证。

#include

int main()

{

int num[ ][3] = {{1,2},3,4,5,6};

for(int i = 0; i < 3; ++i)

for(int j = 0; j < 3; ++j)

printf("%d%d = %d\n", i, j, num[i][j]);

return 0;

}

输出:

00 = 1

01 = 2

02 = 0

10 = 3

11 = 4

12 = 5

20 = 6

21 = 0

22 = 0

11分享举报

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值