C++中使用sizeof获取数组长度

  某天遍历数组时想通过sizeof() 来动态获取数组长度,但是一直不能得到正确的值,就专门查看了下输出值

	int *arr,*ar, capacity = 0;
	int arrr[5] = { 1,1,1,1,1 };
	cin >> capacity;
	arr = new int[capacity + 1];
	cout << "capacity : " << capacity << endl;
	cout << "ar : " << sizeof(ar)/sizeof(int) << endl;
	cout << "arr : " << sizeof(arr) << endl;
	cout << "arrr : " << sizeof(arrr) << endl;

   运行以上代码,得到如下的输出
在这里插入图片描述
   由输出可知sizeof() 只能输出变量所占空间的大小,*int类型的数据占4个字节,int[n]则占用*int×n个字符(4×n)。使用int arr[n]定义的数组可以直接得到数组长度、使用int* 定义的数组在new时也会给出长度。故在C++中遍历数组是的标值一般都可以直接得到。

ps 这篇博客详细的介绍了C++中关于strlen()、sizeof()、size()以及.length()之间的区别,需要详细了解的博友可以去看看:c/c++中sizeof()、strlen()、length()、size()详解和区别文章来自博主z_qifa。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值