c语言数组类型函数 c语言数组常用函数

c语言数组与函数?给你看一下我的代码
#includestdio.h
void main(){
int a[10],b[10],i,j,temp;
for(i=0;i10;i++){
printf("请输入第%d个数:",(i+1));
scanf("%d",a[i]);
//保存数组,因为输入完数组要冒泡排序,排序后的元素顺序可能和原数组不一样
b[i]=a[i];
}
//冒泡排序,求最大值
for(i=0;i9;i++){
for(j=0;j9-i;j++){
if(a[j]a[j+1]){//这里控制的升序还是降序,我这是降序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//查找最大值在原数组的位置
for(i=0;i10;i++){
if(b[i]==a[0]){//降序的话最大值是a[0],升序的话最大值是a[9]
break;//一旦找到最大值,马上跳出循环
}
}
printf("最大值是%d,它在原数组中是第%d个元素!\n",a[0],(i+1));
}
c语言中能不能定义函数数组函数不可以定义为数组 , 可以用函数指针来操作 。
1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表) 。
例如:
double add(double a,double b){}
【c语言数组类型函数 c语言数组常用函数】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语言中有没有返回数组类型的函数?看来你是还没有理解数组的概念,数组名实际上就是指向该数组第一个元素的指针,比如说:
int
array[3]={1,2,3}的一个数组,这里的array实际上是一个指针,指向了这个数组的第一个元素 。这时候你的*array
=
1,*(array
+
1)
=2,*(array
+
2)
=
3 。
这时候你应该知道,所谓的返回数组和返回指针实际上是一个概念 。
int
*
retInt()
{
int
array[3]={1,2,3};
return
array;
}
实际上就是返回了一个数组 。你的最后一个问题 , 指定数组类型 , 实际上只要指定指针类型就可以了 。
还有一种方法就是楼上的兄弟说的了,定义一个新的数据类型存放数组,函数返回该数据类型也就相当于返回了一个数组 。
(上面的函数中数组有作用域问题,仅做说明使用 。)
c语言数组类型函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言数组常用函数、c语言数组类型函数的信息别忘了在本站进行查找喔 。