接受数组的方法很多1维数组a[]你可以
func(int a);
func(int a[]);
func(int a[10]);
这3中方法的是没区别的,
但是要在函数中获取一位数组的长度是不可能的,这是C/C++的一个无法解决的问题。你可以再定义一个形参限定一下对数组 *** 作的大小,
比如func(int a,int N);
这样的前提是你要知道你所 *** 作数组必须长度小于N
数组大小就是指数组存储数据的个数,也可以说是数组长度。
数组简介:
数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫做下标,我们可以通过下标来区别这些元素。数组元素的个数有时也称之为数组的长度。一般情况下,数组的元素类型必须相同,可以是前面讲过的各种基本数据类型。但当数组类型被指定为变体型时,它的各个元素就可以是不同的类型。数组和变量一样,也是有作用域的,按作用域的不同可以把数组分为:过程级数组(或称为局部数组)、模块级数组以及全局数组。C++数组长度 以及sizeof(), size(), length(), strlen()
c++中没有求数组长度的默认函数,只能自己写,但经常有初学者把sizeof(), size(), length(), strlen() 混淆掉。本篇博文具体解释一下如何求数组长度和这四个函数,以及可能遇到的问题。
C++求数组长度为:
int arr_length = sizeof(arr) / sizeof(arr[0]);
为了方便使用,在C语言中常定义宏来求数组长度
#define ARR_LEN(array, length){ length = sizeof(array) / sizeof(array[0]); }
使用时,直接调用宏函数即可,如
int arr[]={1,2,3,4,5};
int len;
ARR_LEN(arr, len); //此时len赋值为5
在C++中,也可以定义模板函数
template <class T>
int getArrayLen(T &array){
return sizeof(array) / sizeof(array[0]);
}
使用时,调用模板函数,如
string arr[]={"abc", "ab", "abcde", "1234567", "890"};
int len=getArrayLen(arr); //此时len赋值为5
这个声明中的x应当在声明以前就以知道。
例如:
#define x 3
int i=new int[x];
int k;
for (k=0;k<x;k++) i[k]=k;
for (k=0;k<x;k++) cout <<i[k] << " ";
===
或者:
int x;
cout << "enter x:" << endl;
cin >> x;
int i=new int[x];
int k;
for (k=0;k<x;k++) i[k]=k;
for (k=0;k<x;k++) cout <<i[k] << " ";
----
数组占的内存字节数: sizeof(int) x
对于数组int arr[]={1,2,3,4};可以用len=sizeof(arr)/sizeof(int);得到其大小len。
字符数组(一定是以\0结尾的)除了上面那个方法外,还可以通过指针用循环判断一下
int len=0;
while (p != '\0')
++len;
一般来说,不能用指针去判断数组到底有多少个元素
可以在函数中借用sizeof运算符,来获取数组大小。
1
获取数组a整体占用空间可以使用
sizeof(a)
该值为这个数组占用的总内存值,单位为字节。
2
获取数组元素个数可以用
sizeof(a)/sizeof(a[0])
该值为数组开辟的元素个数。
用sizeof即可以,数组的长度除以类型的长度,就可以得到数组的元素个数 如 struct A { } A a[22]; 长度就可以用sizeof(a)/sizeof(A)
C语言本身不提供查看动态分配的内存大小,因为分配内存是系统的API函数完成的。
但是通过调用系统的API函数可以查看内存分配大小,不然肯定无法释放这些内存了。
以windows为例:
#include<iostream>using namespace std;
int main()
{
int p=(int )malloc(sizeof(int)10);
cout<<sizeof(p)<<endl;
cout<<_msize(p)<<endl;
system("PAUSE");
return 0;
}
以上就是关于c语言中怎么接收一的数组,在写程序前不知道这数组的大小,并且后面有对这数组的 *** 作!!!全部的内容,包括:c语言中怎么接收一的数组,在写程序前不知道这数组的大小,并且后面有对这数组的 *** 作!!!、数组的大小、c++中如何知道一个new出来的数组的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)