1、传递数组,打印不出来

  1. #include <stdio.h>
  2. void solve()
  3. {
  4. printf("%d",x[]);
  5. }
  6.  
  7. int main()
  8. {
  9. int i;
  10. for(i=;i<n;i++)
  11. {
  12. scanf("%d",&x[i]);
  13. printf("%d\n",x[i]);
  14. }
  15. solve();
  16.  
  17. return ;
  18. }

[Error] error: `x' undeclared (first use in this function)

或者是这个错误for each function it appears in.)

------------------------------------------------

解决方案一:设置全局变量

  1. #include <stdio.h>
  2. int x[];
  3. void solve()
  4. {
  5. printf("%d",x[]);
  6. }
  7. int main()
  8. {
  9. int i,n;
  10. puts("输入数组长度");
  11. scanf("%d",&n);
  12.  
  13. for(i=;i<n;i++)
  14. {
  15. scanf("%d",&x[i]);
  16. printf("%d\n",x[i]);
  17. }
  18. solve();
  19. return ;
  20. }

解决方案二:用指针传递首地址

  1. 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。
  1. #include <stdio.h>
  2.  
  3. void solve(int *x) //前面的int也不能省。
  4. {
  5. printf("%d",x[]);
  6. }
  7. int main()
  8. {
  9. int i,n;
  10. puts("输入数组长度");
  11. scanf("%d",&n);
  12. int x[n];
  13.  
  14. for(i=;i<n;i++)
  15. {
  16. printf("输入第%d个数",i+);
  17. scanf("%d",&x[i]);
  18. printf("%d\n",x[i]);
  19. }
  20. solve(); //这里的x也不能省
  21. return ;
  22. }
  1. 数组给一个函数,常用的是可把数组的首地址传给函数。
    即相当于是指针的应用
    fun(int array[10][])
    fun(int array[])
    fun(int *array)
  2.  
  3. 三种调用方法
    完整版:输入的数组全部打印出来
  1. #include <stdio.h>
  2. int i,n;
  3.  
  4. void solve(int *x) //前面的int也不能省。
  5. {
  6. for(i=;i<n;i++)
  7. {
  8. printf("%d",x[i]);
  9. }
  10.  
  11. }
  12. int main()
  13. {
  14.  
  15. puts("输入数组长度");
  16. scanf("%d",&n);
  17. int x[n];
  18.  
  19. for(i=;i<n;i++)
  20. {
  21. printf("输入第%d个数",i+);
  22. scanf("%d",&x[i]);
  23. printf("%d\n",x[i]);
  24. }
  25. solve(x); //这里的x也不能省
  26. return ;
  27. }

另外一个例子:

  1. #include "stdio.h"
  2. //指针:数组的传递
  3. void int_set(int *vc,int no,int val)
  4. {
  5. int i;
  6. for(i=;i<no;i++)
  7. {
  8. vc[i]=val;
  9. }
  10. }
  11. int main()
  12. {
  13. int i;
  14. int ary[]={,,,,};
  15. int_set(ary,,);
  16. for(i=;i<;i++)
  17. printf("ary[%d]=%d\n",i,ary[i]);
  18. return ;
  19.  
  20. }

c语言函数传递数组的更多相关文章

  1. c语言.函数指针数组

    函数指针: 一个指向函数的指针.一般用函数名表示. 函数指针数组:元素为函数指针的数组.转移表.c语言中函数不可以定义为数组,只能通过定义函数指针来操作. #include<stdio.h> ...

  2. C++和Java函数传递数组参数比较

    如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示.因为Java有.length方法,可以获取数组的长度. public class Test { public static v ...

  3. C语言结构体及函数传递数组參数演示样例

    注:makeSphere()函数返回Sphere结构体,main函数中.调用makeSphere()函数,传递的第一个參数为数组,传递的数组作为指针.

  4. C++函数传递数组的两种方式

    数组与指针. 传首地址过去,然后通过地址输出数组元素. 1.一维数组 #include<iostream> using namespace std; #include <cstrin ...

  5. [py]给函数传递数组和字典

    一 , 1.1传元组 def fun(x): print x t=(1,2) fun(t) 1.2传元组 #传元组 def fun(x,y): print x,y # t=(1,2) t=(1,2,3 ...

  6. C语言函数返回数组

    #include "stdio.h"/*int* set(int a,int *c){ int *b; b=malloc(sizeof(int)*3); c[0]=a; c[1]= ...

  7. C++ 数组作为函数参数时,传递数组大小的方法

    废话不多说,先上错误示范: void fun(int arr[arr_num]) { // ... } int main() { // ... int *arr = new int[10]; fun( ...

  8. 不可或缺 Windows Native (6) - C 语言: 函数

    [源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...

  9. C语言学习笔记--数组参数和指针参数

    1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的. ...

随机推荐

  1. 8个很有用的PHP安全函数,你知道几个?

    原文:Useful functions to provide secure PHP application 译文:有用的PHP安全函数 译者:dwqs 安 全是编程非常重要的一个方面.在任何一种编程语 ...

  2. 当rsync遇到非默认端口的ssh

    在使用rsync使用ssh协议,来同步远程文件的方法,rsync -zvrtopg -e ssh但是如果遇到ssh不是22端口的时候使用rsync -zvrtopg -e ‘ssh -p 端口’特别是 ...

  3. 判断相同区间(lazy) 多校8 HDU 5828 Rikka with Sequence

    // 判断相同区间(lazy) 多校8 HDU 5828 Rikka with Sequence // 题意:三种操作,1增加值,2开根,3求和 // 思路:这题与HDU 4027 和HDU 5634 ...

  4. CSS框模型(框模型概述、内边距、边框、外边距、外边距合并)

    CSS 框模型概述 CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式. 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景. ...

  5. tensorflow-cnn

    需要安装 python,numpy,tensorflow,运行代码即可. tensorflow很好装,用pip安装即可. 可以参照http://wiki.jikexueyuan.com/project ...

  6. GDB中应该知道的几个调试方法

    七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题.这么多年来,有一些问题是大家反复在问 ...

  7. Nginx的session一致性问题

    session一致性memcached缓存数据库解决方案 1.安装memcached内存数据库 yum –y install memcached 可以用telnet localhost 11211 S ...

  8. sass学习(1)——了解sass

    为什么要选择sass 我们在手写css中,会遇到很多很麻烦的问题.倒不是一些技术的问题,而是工程量的问题.例如,如何可以代替难记的16进制颜色,如何可以让层次更清晰,还有重复的代码该如何偷懒.其实这一 ...

  9. 通过一次实验来了解HTML5的 Web Worker

    web worker 是运行在后台的 JavaScript,不会影响页面的性能. 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成. web worker 是运行在后台的 Ja ...

  10. python 操作 excel

    python操作execel主要是读写 读 通过 http://pypi.python.org/pypi/xlrd 写 通过 http://pypi.python.org/pypi/xlwd 下载ta ...