c语言 - 打印二维数组的行数和列数

场景

有的时候在定义二维数组时并不会赋予它行数,那么这个时候如果需要打印出整个数组,就需要行数来作为每次循环的 i 值了,这个时候应该怎么办呢?

解决

方法一:
假设行数为n,由于行数可以省略,但列数不能省,所以可以:
n = sizeof(二维数组名) / sizeof(数组类型) / 列数

方法二:
由于二维数组的每一行可以看作一个个一维数组,而且每一个一维数组的名字都是可以操作的,所以通过用总的二维数组内存除以单个一维数组的内存,就求出了一共有几个一维数组,即几行:
n = sizeof(二维数组名) / sizeof(单个一维数组名)

列数的求法就是用二维数组一行所占的内存除以单个元素所占的内存

实例

char ch6[][7] = {"Apple","Orange","Grape","Pear","Peach"};
	int a,b;
	//计算二维数组的行数
    a = sizeof(ch6) / sizeof(char) / 7;
    b = sizeof(ch6) / sizeof(ch6[0]);
	printf("a为%d\n",a);
	printf("b为%d\n",b);
	 //计算二维数组的列数
	c = sizeof(ch6[0]) / sizeof(char);
	printf("c为%d\n",c);

输出结果

a为5
b为5
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值