c语言函数定义中有数组 c语言定义的数组存在什么问题

c语言中能不能定义函数数组

函数不可以定义为数组,可以用函数指针来操作。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、做网站、五常网络推广、微信小程序定制开发、五常网络营销、五常企业策划、五常品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供五常建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表)。

例如:

double add(double a,double b){}

double sub(double a,double b){}

double mul(double a,double b){}

double div1(double a,double b){}

double (*oper_func[])(double, double) = {add,sub,mul,div1};//函数指针的数组定义。

2.函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数。

扩展资料:

指针函数和函数指针的区别:

这两个概念都是简称,指针函数是指返回值是指针的函数,即本质是一个函数。我们知道函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示:返回类型标识符*函数名称。

返回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该地址相当于一个指针。比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。

参考资料:百度百科 - 函数指针

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

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

因为你在函数中计算的时候,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语言中自定义的函数中有数组,应该如何运用该函数

方法

有2

将该数组定义为全局变量,即:

int

g_arr;

void

fun()

{...}

void

main()

{...}

2.将该数组作为函数参数传递到自定义函数里,即:

void

fun(int

arr[])

{...}

void

main()

{

int

arr[10];

fun(arr);

}


当前文章:c语言函数定义中有数组 c语言定义的数组存在什么问题
分享地址:http://myzitong.com/article/dosgcoo.html