c语言数组与函数?

Python09

c语言数组与函数?,第1张

给你看一下我的代码

#include<stdio.h>

void main(){

int a[10],b[10],i,j,temp

for(i=0i<10i++){

printf("请输入第%d个数:",(i+1))

scanf("%d",&a[i])

//保存数组,因为输入完数组要冒泡排序,排序后的元素顺序可能和原数组不一样

b[i]=a[i]

}

//冒泡排序,求最大值

for(i=0i<9i++){

for(j=0j<9-ij++){

if(a[j]<a[j+1]){ //这里控制的升序还是降序,我这是降序

temp=a[j]

a[j]=a[j+1]

a[j+1]=temp

}

}

}

//查找最大值在原数组的位置

for(i=0i<10i++){

if(b[i]==a[0]){ //降序的话最大值是a[0],升序的话最大值是a[9]

break //一旦找到最大值,马上跳出循环

}

}

printf("最大值是%d,它在原数组中是第%d个元素!\n",a[0],(i+1))

}

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

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在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数。

扩展资料:

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

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

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

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

方法

有2

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

int

g_arr

void

fun()

{...}

void

main()

{...}

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

void

fun(int

arr[])

{...}

void

main()

{

int

arr[10]

fun(arr)

}