网站建设资讯

NEWS

网站建设资讯

c语言数组是函数输出 c语言数组的输出格式

c语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的?

提供两个办法:

专注于为中小企业提供成都做网站、成都网站设计、成都外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业龙子湖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。

void fun(int a[],int n){

........

}//其中a[]就是要输入的数组,n是这个数组的长度。

void main(void){

int arry[10]={1,2,3,4,5,6,7,8,9,0};

fun(arry,10);

......

}

2.可以在主调函数中建立数组并把首地址和长度传给函数,在函数中创建一个动态数组,处理完后把动态数组的首地址返回主调函数,最后在主调函数中释放动态申请的内存。

int *fun(int a[],int n){

int *p=(int *)malloc(n*sizeof(int));//申请内存.

if(!p){//判断是否申请成功.

printf("failure...");

exit(0);

}

memcpy(p,a,n*sizeof(int));//把主调函数的数组拷贝过来.

......

return p;

}

void main(void){

int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;

ptmp=fun(arry,10);

......

free(ptmp);//释放申请的空间.

}

数组的内容是不能一一传给函数的……

c语言中能不能用printf函数直接输出数组?如printf("%d",a[3][3]);

限制在C语言中,利用printf直接输出数组是不可以的。

但是你的做法是可以的。只是问题出在你数组使用越界了。

解释一下:

printf不能直接用来输出数组。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

for(i=0;i3;i++)

printf("%d",a);

}是错误的

所以要是输出数组的话,必须要借助其他的语句输出,要一个一个地输出,例如for语句的循环输出。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

for(i=0;i3;i++)

printf("%d",a[i]);

}但是你这样的做法是可以:

因为你写的a[3][3]实际上已经指定了这个数字在这个二维数组中的横坐标和纵坐标,相当于一个int型的数据。但是不过你数组越界了。

额外引申一下:直接用scanf输入一个数组的量可以么?

#includestdio.h

int

main(){

char

a[3];

scanf("%c",a);

int

i;

for(i=0;i3;i++)

printf("%c",a[i]);

}

这样输入3个字符,只能把输入的第一个字符放进a数组里面。因为a就是这个数组的地址,同时也表示这个数组的第一个。a可以给数组的第一个放进一个字符,但是后面的就无能为力的。

代码均在Devc++测试。

C语言数组的输出函数

#include

"stdio.h"

void

input(int

a[10])

//给一维数组输入数据

{

int

i;

for(i=0;i10;i++)

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

}

void

output(int

a[10])

//输出一维数组输入数据

{

int

i;

for(i=0;i10;i++)

printf("%d

",a[i]);

}

int

main()

{

int

b[10];

input(b);

//调用input函数给数组b赋值

output(b);//调用output函数输出数组b中的值

}

c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么实现啊

用指针,另外保存数据的变量退出函数时不得消失。

例如:

#includestdio.h

int * fun(int n)

{

int i;

static int a[100]; // 这里用static

for (i=0;in;i++) a[i]=i;

return a[0];

}

void main()

{

int i,n=5;

int *p; // 声明指针

p = fun(n); // 返回指针

for (i=0;in;i++) printf("%d\n",p[i]); // 把 p 看成数组来输出

}

得 0 1 2 3 4

扩展资料:

注意事项

1、数组的维度必须是一个常量表达式

int main(void)

{

constexpr int i = 20;

int j = 5;//不是常量表达式

int arr1[i];//正确

int arr2[j];//错误

system("pause");

return 0;

}

2、默认情况下,数组的元素被默认初始化。

而且需要注意的是,和内置类型的变量一样,如果在函数内部定义了某种内置类型的数组,那么默认初始化会令数组有未定义的值。


当前名称:c语言数组是函数输出 c语言数组的输出格式
URL分享:http://njwzjz.com/article/dopdhch.html