十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在c语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。
10年积累的成都做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有龙港免费网站建设让你可以放心的选择与我们合作。
在大多数情况下,一维数组和一维指针是可以通用的。
比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针null。
代码可以写成如下形式:
int *int_array_create(int n)//参数n为数组元素个数
{
int *r;
if(n=0) return null;//参数错误
r = (int *)malloc(sizeof(int)*n);//申请内存空间,大小为n个int长度。
return r;//返回得到的整型数组的指针。
}
有一个函数就是为了获取数组元素个数的:sizeof!
原理是:sizeof获取数组的长度然后除以数据类型所占的长度得到元素个数
我简单写下代码:
int a[100]={1,2,3,4}; int len=sizeof(a)/sizeof(int); printf("%d\n",len);
以上为原来的回答,有错误:
在给定数组大小时候sizeof这个方法就不起作用了,我当时没注意犯了错误有些误人子弟了
原谅我一年以后才来修改这个答案~
我想了想int数组默认全是0称为初始化,姑且说非0为有效元素
while(i100)
{
if(a[i]!=0)
count++;
i++;
}
遍历,记录
字符数组有结束符,只要找到结束符的位置就可以了
应该是a[2][3]={{1,3,2},{8,0,3}} 吧
#include iostream //cout函数的头文件
#include cstdlib
#include time.h /* srand函数与rand函数的头文件*/
using namespace std;
int main()
{
int a[2][3]={{1,3,2},{8,0,3}},x,y,z;
srand ( (unsigned) time (NULL) );
x=rand()%2; //调用随机函数
y=rand()%3; //调用随机函数
z=a[x][y];
coutz"\n";
system ("pause");
return 0;
}
三楼,请注意素质...
那是我的版权!!
楼主,一定要注意先来后到!
我本是2楼的,后因稍作修改,没想到3楼抄袭我。。。
C语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数),通过数组占内存总空间/单个元素占内存空间大小,即可得到数组的元素个数
例如
但是,通过将数组作为函数参数传递到函数中,以获得数组长度是不可行的
例如
原因:数组arr是函数参数,在函数中,arr只是一个指针(地址,系统在本函数运行时,是不知道arr所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(arr)的结果是指针变量arr占内存的大小,一般在32位机上是4个字节。arr[0]是int类型,sizeof(arr[0])也是4个字节,所以,结果永远是1。
如果想要在被调用的函数中,得知原数组的大小,可以再给函数添加一个参数,用于指定数组的大小,让外界调用函数前就讲数组的大小传递进来