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

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

【摘要】

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

【正文】

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

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

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

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

答案还是肯定的。

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

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

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

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

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

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

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

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

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

版权声明: 举报

相关文章推荐

C++求数组长度

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

C或C++获取数组长度

一、静态数组。 比如 int int_ary[5] ,静态数组在编译的时候就知道了数组长度,这对编译器来说挺好实现的。 用得最多的大概就是sizeof了吧: 1 #defin...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

C/C++中获取数组的长度

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

C++数组长度

C++求数组长度为: int arr_length = sizeof(arr) / sizeof(arr[0]); 为了方便使用,在C语言中常定义宏来求数组长度 #define ARR_LEN(...

sizeof获取数组长度

昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。 在...

sizeof获取数组长度的函数

#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));} C、C++中没有提供 直接获取数组长度的函数,对...

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

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

c++求数组长度

转自:http://blog.sina.com.cn/s/blog_5a48dd2d0101cpfl.html 说道求数组长度,可能你首先会想到用以下公式 int a[10] = {...}; si...

计算整形长度

题目大意是:在不使用sizeof()函数的情况下,取出本机的整形所占位数,如32位、64位等。 分析 在计算机中,常用的基本类型为:char、short int、long int、float、do...

用长度为0的数组管理共享内存

gnu支持长度为0的数组,一般用来表示结构体或者类的最后一个数据成员,这样的数据成员不占任何空间并指向所在结构体或者类对象的下一个字节.下面示例代码显示了通过共享内存管理两块数据空间,每个数据由一个D...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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