看来你是还没有理解数组的概念,数组名实际上就是指向该数组第一个元素的指针,比如说:
int
=
①.,*(array
+
这时候你应该知道,所谓的返回数组和返回指针实际上是一个概念.
*
retInt()
{
return
array;
}
实际上就是返回了一个数组.你的最后一个问题,指定数组类型,实际上只要指定指针类型就可以了.
还有一种方法就是楼上的兄弟说的了,定义一个新的数据类型存放数组,函数返回该数据类型也就相当于返回了一个数组.
(上面的函数中数组有作用域问题,仅做说明使用.)
array的英文意思是数组,C语言有数组,但没有VB里面的函数array(它是用来给数组赋值的)
第一段:数组可定义为全局变量,函数直接调用.
第二段:数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名,表示数组首地址,也可通过指针或数组名+数字来传递数组局部地址).
第三段:main函数想要调用函数返回的数组,可用static定义静态变量或malloc定义动态数组(字符串常量也可返回使用,但局部变量,在函数调用结束会被释放,不能作为返回地址使用).
下面是演示代码:
#include stdio.h
#include string.h
#include malloc.h
char str1[]="我是全局变量数组";
char *fun1();
int main()
return 0;
char *fun0(char s[])
printf("str1:%s,fun函数可以直接调用\n",str1);
char *fun1()
int len;
char sTemp[]="这是一个临时数组,之后用于给mallc申请的地址传值,传递内容为:(我是fun函数通过mallic申请的数组)";
函数不可以定义为数组,可以用函数指针来操作.
#includestdio.hint max(int x,int y){return (xy? x:y);}int main(){ int (*ptr)(int, int); int a, b, c; ptr = max; scanf("%d%d", a, b); c = (*ptr)(a,b); printf("a=%d, b=%d, max=%d", a, b, c); return 0;}
方法
将该数组定义为全局变量,即:
g_arr;
void
fun()
{...}
main()
fun(int
arr[])
arr[10];
fun(arr);
以上就是土嘎嘎小编为大家整理的C语言有数组函数吗相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!