c语言调用数组
❶ 在c语言中怎么将子函数中的数组和函数调用出来
来传送子函数中的数组有多种方法——可以通过函数返回值返回地址传递数内组;也可以通过函数输入参数容来传递数组;还可以通过全局变量来传递数组。
子函数本身可以直接在作用域中进行调用。
1、通过函数返回值返回地址传递数组。
声明函数时需要声明函数返回值类型为对应数组的地址,此时可以返回数组的地址,结合数组元素的地址关系可以传递整个数组,同时可以根据数组的特性传递多个参数。
注意:子函数是C语言模块化编程思想的核心,其方法是通过输入接口和输出接口实现对黑盒的调用,故对其内部数据的输入和调用也需要通过输入接口、输出接口和程序的公共区域实现。
❷ 关于c语言中数组作为函数参数的函数之间调用问题
1、新建一个数组作为参数项目,如图所示:
❸ C语言 数组调用
1.一下程序
main()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
答案:程序出错
2.一下程序
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1; m=i+x+y;return m;}
main()
{ int j=1,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
答案:5,11
3.若有定义:char*x="abcdefghi"; ,能正确运用了 strcpy函数的是:
char y[10]; *s; strcpy(s=y+1,x+1);
4.有以下程序执行后W结果是;
int fun1(double a) {return a*a;}
int fun2(double x,double y)
{ double a=0,b=0;
a=fun1(x); b=fun1(y);return(int)(a+b);}
main()
{ double w, w=fun2(1.1,2.0);.......}
答案:5.0
5.设函数的fun定义形式为:void fun(char ch,flaot x) {.....}
则对函数fun的调用语句是: fun(32,32);
6.已有定义char a[]="xyz",b[]={'x','y','z'};,则叙述正确的是:
a数组的长度大于b数组长度
7.一下叙述错误的是C)
A.对于double类型数组,不可以直接用数组名进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D. 可以通过赋值的方式确定数组元素的个数
8.有以下程序:
char fun(char x,char y)
{ if (x<y) return x;
return y; }
main()
{ int a='9',b='8',c='7';
printf("%c\n", fun(fun(a,b),fun(b,c)));
}
答案是:7
9.若定义以下函数:
double myadd(double a,double b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应对其说明,正确的说明有:
double myadd(double,double);
double myadd(double b,double a);
double myadd(doubie x,double y);
10有以下程序,执行后输出的是:
fun( int x, inty)
return(x+y);}
main()
int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);}
答案:8
11.有以下程序结果是
#define P 3
F(int x)
{ return (P*x*x);}
main()
{ printf("%d\n",F(3+5));}
答案:192
❹ C语言数组怎么调用
基本上抄是对的,scanf()里的参数就是变量的地址
数组名你可以理解为这个数组的起始地址(第一个元素的地址),比如你这里的a,它就相当于是&a[0],a+i就是第i个元素的地址,所以要想给这个数组赋值,还可以这样
for(i=0;i<6;i++)
scanf("%d",a+i);
❺ C语言数组的引用
A 拿到的是数组元素的地址,是取地址,但是题目要求是对数组元素的引用,是需要数组元素的值。
❻ C语言调用数组返回数组怎么做
#include <stdio.h>
#define MIN(x,y)
int * add_1();
main()
{
int * p = add_1();
int b[5];
for(int i=0;i<5;i++)
{
b[i] = *(p+i);
}
for(i=0;i<5;i++)
{
printf("%d",b[i]);
}
}
int * add_1()
{
int static a[5]={1,2,3,4,5};
return a;
}
(6)c语言调用数组扩展阅读:
注意事项
一、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。
可以是全局变量,静态局部变量,动态分配内存,以及从函数参数传过来的数组地址。
二、返回指针时,无法返回长度,所以需要其它方式传回数组长度,以下是几种常用的方法。
1、约定固定长度。
2、以函数参数返回数组长度。
3、将长度保存在全局变量中。
4、约定数组结束标记。
5、在数组中存储数组长度,如存在第一个元素中。
有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。
例如指针:
#include <stdio.h>
char *test(char *tmp)
{
return tmp;
}
void main(void)
{
printf("%s",test("第一个测试例子 "));
}
❼ c语言其他函数怎么调用主函数的一个数组
可以定义在主函数外,即定义成全局变量.
也可以以参数形式传入被调函数中.
比如 定义的是A[M][N]形式的
参数就用int A[M][N]
或者用数组指针int (*p)[N]
❽ c语言中怎样引用数组
应该是c吧。原复因是:制
你应该把数组的声明和引用分开,声明的时候〔〕里边放的是元素的个数,比如int a[3][4]就说明是3行4列。
引用的时候〔〕里的数的意义就不一样了,是索引。而且你应该格外注意的是,c语言的索引是从0开始的。举个简单的例子吧。
int a[3][2];这个2*3的二维数组。他的索引和排列应该是
a[0][0],a[0][1]
a[1][0],a[1][1]
a[2][0],a[2][1]
看到了吧,索引比声明的时候要小1。
❾ 在C语言中,怎样引用数组中所有的元素啊
要引用数组宏的每个元素做些计算,可以将数组及数组的长度作为参数同时传递给调用函数就可回以实现了,比如:答
#include<stdio.h>
int sum(int a[], int size)
{
int i, result = 0;
for (i = 0; i < size; i++) {
result += a[i];
}
return result;
}
main() {
int a[8];
int s,i;
for (i = 0; i < 8; i++) {
scanf("%d", &a[i]);
}
s = sum(a, 8);
printf("%d", s);
}
❿ c语言自定义数组并调用
动态内存分配实现
#include<stdio.h>
#include<malloc.h>
intmain(void)
{
int*a,n,i;
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;++i)
{
printf("%d",a[i]);
}
free(a);
return0;
}
或者,如果编译器支持C99的话,直接定义int a[n];即可