c语言函数声明含数组 c语言函数中数组声明

C语言定义一个函数如果含有数组

void min(int a[],int x) //int x是用来标记传过来的数组的长度(即a数组指向的那个数组的长度)。

创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为巍山企业提供专业的成都做网站、成都网站设计、成都外贸网站建设巍山网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

因为你在函数中计算的时候,a只能当做一个指针来用,没有具体的长度,而且你是int 型的,所以没有标准库函数来求你需要计算的数组的长度,所以你就没法计算。

void min(int a[],int b[])这样计算没错误,但是在计算的时候,你要知道a所指向的数组的长度和b所指向的长度,例如下面的例子:

a数组中有10个数,b数组中有2个数,a数组的大小是40个字节,而指向他的c数组大小只有4个字节,所以当你运算的时候,你要知道c指向的a数组的大小,同理,d也是一样。

#include"stdio.h"

#include"string.h"

void min(int c[],int d[])

{

int i,j=0;

int e[100]={0};

printf("c=%d\n",sizeof(c));

for(i=0;i10;i++) //a数组中有10个数

e[j++]=c[i];

for(i=0;i2;i++) //b数组中有2个数

e[j++]=d[i];

for(i=0;e[i];i++)

printf("%d\t",e[i]);

}

main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10};

int b[2]={3,4};

printf("a=%d\n",sizeof(a));

min(a,b);

}

C语言声明数组参数的问题

看下面代码:

int main()

{

int a[5]={3,6,4,2,5};

char *ptrChar="hello world";//ptrChar是char类型的指针,指向内存空间

int *ptrInt=a;//ptrInt是指向int类型的指针

printf("sizeof(char):%d\n",sizeof(char));

printf("sizeof(int):%d\n",sizeof(int));

printf("sizeof(ptrChar):%d\n",sizeof(ptrChar));

printf("sizeof(ptrInt):%d\n",sizeof(ptrInt));

printf("value of ptrChar is:%d\n",ptrChar);

printf("value of (ptrChar+1) is:%d\n",ptrChar+1);

printf("value of ptrInt is:%d\n",ptrInt);

printf("value of (ptrInt+1) is:%d\n",ptrInt+1);

system("pause");

return 1;

}

程序运行结果如下:

从程序的运行结果可以得出:

指针本身是一个变量,它所存储的是另一个变量的地址,指针变量所占的内存是4个字节,这与它所指向的变量所占的内存空间大小是没有关系的,指针变量本身和它所指向的内存空间是完全独立的

c语言函数声明数组可以省略数组名吗

c语言函数声明数组不可以省略数组名。根据查询相关公开信息显示,在C语言中,函数声明数组时必须提供数组的名字,否则会出现编译错误。

C语言中在函数中声明数组类型的形式参数

定义数组必须要确定它的长度,所以int [] ={1, 2, 3}类似的才能编译通过。 在函数的形参里使用int a[] 其实是一个道理,它会在调用时被赋予初值和长度。 申请的空间通过栈来保存,使用完了就会释放,下一次调用,又会被赋予不同的初值和长度。 手打,望采纳,有问题追问


分享标题:c语言函数声明含数组 c语言函数中数组声明
文章地址:http://myzitong.com/article/dojcigj.html