C++ 怎么取整形数组的长度

原创 2015年07月08日 11:51:45

【摘要】

本文主要讨论两个小点,怎样获取主函数中整形数组的长度;自定义函数输入参数为整型数组,怎么得到该数组长度。

【正文】

很早就知道C++ 中,因为栈的回收机制,函数的返回值不可以是数组

  • 但是,能不能输入参数包含数组呢?

答案是肯定的,以指针形式传入即可。

  • 那么,问题再进一步,如果我想在函数中对数组进行遍历,可不可以呢?

答案还是肯定的。

  • 函数中接收数组的是一个数组指针,也就是把数组的函数名传进去,数组的地址被函数接受,那我们怎么知道数组的长度呢?

答案还是肯定的,我们可以用strlen函数啊。

  • 但是,再进一步,如果是整形数组呢?

这个似乎就不那么简单了。

在主函数中,数组在内存中开辟了一段内存空间,用于存贮数组变量。如果是字符数组变量很容易理解,strlen和 sizof/sizeof(char)函数都可以应付。如果是字符指针,strlen也能够处理。针对整形数组,sizeof/sizeof(int) 是最快的方式。

自定义函数中,整型数组是没有办法找到数组长度的,因为,作为指针,指向整型数组,这里是判断不出指向对象实际长度的。

所以,现提出以下两个办法

1.传入数组长度,将数组长度作为输入参数导入到自定义函数中去;

2.声明全局变量,保证使用之前正确复制即可。

相关文章推荐

C程序中,strlen是求取字符串长度,若对整形数组,求取的是什么?还有整形数组作函数参数的问题?

#include #include void main() { void fun(char *a); int a[2]={2,3}; printf("%d\n",strlen(a)); ...

函数参数传递整形数组时,必须要以数组长度作参数。

/以下是我写的c++程序。 /函数f()的功能是去掉一个最大值和最小值后求平均值。 //跳水打分 #include using namespace std; void f(double a[...

C/C++中如何获取数组的长度?

 C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) ...
  • bopzhou
  • bopzhou
  • 2010年12月08日 15:28
  • 83002

Linux内核版本号的含义

转自http://www.cnblogs.com/darker/archive/2012/04/02/2430591.html 原作者保留所有权利 Linux内核有三个不同的命名方案...
  • digimon
  • digimon
  • 2013年02月24日 20:50
  • 4227

Qt开发: 添加程序图标ico -【图文并茂】

1 添加*.qrc文件 2 添加 prefix   *.qrc鼠标右键    3 添加ico图标     注意使用ico格式的图片 4 代码添加ico 5 效果图...
  • taoerit
  • taoerit
  • 2017年07月25日 10:26
  • 366

在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字

在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。 例如: a = {1,3,7,9,5,9,4,3,...

面试算法:在整形数组中构建元素之和能整除数组长度的子集

假设A是一个整数数组,长度为n,数组中的元素可能是重复的。设计一个算法,找到一系列下标的集合I = {i(0), i(1), i(2)….i(n)}. 使得(A[i(0)] + A[i(1)] + …...

c++代码测字符串长度(数组法)

  • 2015年01月11日 14:16
  • 347B
  • 下载

C++ 数组与字符串长度sizeof()、strlen()、string的length()和size()

目录 一、数组或字符串的长度 1、sizeof()---求所占的字节数 (1)、对于整型字符型数组 (2)、对于整型或字符型指针 2、strlen()---字符数组或字符...
  • twlkyao
  • twlkyao
  • 2013年05月25日 19:43
  • 6316

C++中,类Class数组长度的问题

看如下代码: class OperatorNewCls{ private: // enum {sz=10}; int arr[sz]; public: /*定义析构函数后,sizeof...
  • lslxdx
  • lslxdx
  • 2012年08月12日 10:40
  • 1175
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 怎么取整形数组的长度
举报原因:
原因补充:

(最多只允许输入30个字)