精华内容
下载资源
问答
  • c++函数调用数组

    2021-03-31 14:10:16
    int fun(int a[3][2]) { } int main() { fun(a); }
    int fun(int a[3][2])
    {
    }
    int main()
    {
    fun(a);
    }
    
    展开全文
  • 函数调用数组  #include void main() { void f1(int a); void f2(int x[]); int a[10] = { 0,1,2,3,4,5,6,7,8,9 }; f1(a[9]);//函数调用数组元素 f2(a);//函数调用数组(数组名存的就是数组首地址) } void ...
    话不多说,上代码


    函数调用数组 (数组*函数)

    #include<stdio.h>
    void main()
    {
    	void f1(int a);//【声明
    	void f2(int x[]);
    
    	int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
    	f1(a[9]);//函数【调用数组元素
    	f2(a);//函数【调用数组(数组名存的就是数组首地址)
    }
    
    void f1(int a)//就像调用一个变量一样【数组元素在此就是单个变量
    {
    	printf("%d\n", a);
    }
    
    void f2(int x[])//调用一个地址(所以函数内对数组做的改变全是真实改动)
    {
    	printf("%d\n", x[9]);
    }
    请注意其对应的:声明、定义、调用。的区别!
    调用数组只需传入数组名(数组首地址)即可。
    而调用数组元素则是采用"值传递"那样的方式,就像调用一个不是数组的变量一样。

    声明、定义 中做参数【都是函数首部】

    void f2(int x[]);//声明
    
    void f2(int x[])//定义
    {
    	printf("%d\n", x[9]);
    }

    调用 中做参数【直接是数组名(首地址)】

    f2(a);//调用(a是数组a[100]的数组名)


    指针数组(数组*指针)

    #include<stdio.h>
    void main()
    {
    	int i = 0;
    	char *p[4];//int (*p)[4]则是指向一维数组的指针变量
    	p[0] = "hello";//指针能直接指向字符串并且赋值,比字符数组好用多了(这首指针p[0],是一个指针变量)
    	p[1] = "world";
    	p[2] = "!";
    	p[3] = "\1";
    	while(p[i]!="\1")//字符串就是地址?详见另一文章
    	{
    		printf("%s\n",p[i]);//此处记住,输出的参数是字符串的地址
    		i++;
    	}
    	
    }


    结构体数组(数组*结构体)

    #include<stdio.h>
    #include<string.h>
    struct Man 
    	{
    	int num;
    	char name[20];
    	}Student[3];
    
    void main()
    {
    	for (int i = 0; i < 3; i++)
    	{
    		Student[i].num = i;
    		strcpy(Student[i].name, "zhang");//还不能直接用等号= =。。。
    		printf("学生%d %s\n", Student[i].num , Student[i].name);
    	}
    }





    展开全文
  • 在matlab里.m文件分执行文件和函数文件 在c++中执行文件指:main函数 函数文件:其他所有需要用到的函数 在c++中,函数文件名没有特殊讲究,将文件添加到工程目录便能使用 对函数的要求有三点 函数的完整文件 输入...

    在matlab里.m文件分执行文件和函数文件
    在c++中执行文件指:main函数
    函数文件:其他所有需要用到的函数

    在c++中,函数文件名没有特殊讲究,将文件添加到工程目录便能使用
    在这里插入图片描述
    对函数的要求有三点

    函数的完整文件
    输入参数的定义
    函数声明加入头文件

    1.函数的完整文件

    #include <opencv2/opencv.hpp>
    using namespace cv;
    
    void cameracapture(Mat &frame, int mytime, int imageWidth,int imageHeight)
    {
    	char c = 0;
    	VideoCapture capture(0);
    	capture.set(CV_CAP_PROP_FRAME_WIDTH, imageWidth*2);//宽度2560
    	capture.set(CV_CAP_PROP_FRAME_HEIGHT, imageHeight);//高度720
    	
    	for (int i=0; i < mytime; i++)
    	{
    		capture >> frame;
    	}
    }
    

    函数的完整文件包括了函数需要的头文件

     #include <opencv2/opencv.hpp>
     using namespace cv;
    

    以及剩下的函数的程序段
    这里解释一下加&和不加&的区别
    Mat &frame 加&的变量传递的是变量地址,直白的理解为,加了后我在函数中对该变量修改后,会对我的主函数main中的对应变量进行修改。这里我的程序是打开相机,并把拍摄图像返回main函数,因此我需要随时根据拍摄修改我的main函数中frame的值。
    int mytime, int imageWidth,int imageHeight这些则是传入值,在函数内进行修改后不影响main里面的值,因为这些值只传入函数,而不需要函数再传回主函数。
    这里还有一点编程技巧
    我们通过函数调用的方式进行运算,有两种方式得到运算结果
    ①设置函数的返回值,return
    ②将传入值的地址(即传入值自身)交给函数,函数对其进行运算相当于直接对传入值进行运算。

    2.输入参数的定义

    我们在main中调用其他函数时,我们的输入参数需要提前定义

    main ()
    {
    Mat frame; 
    int mytime = 10;
    int imageWidth = 1280;
    int imageHeight = 720;
    cameracapture(frame, mytime, imageWidth, imageHeight);//注意这里和函数定义不同
    ………………
    }
    

    3.函数声明加入头文件

    我们调用其他函数前必须先声明

     void cameracapture(Mat &frame, int mytime, int imageWidth,int imageHeight)
    

    写入.h文件(头文件),写入头文件后也就告知了我们的项目,我们声明了,项目中是有该函数的定义的。为什么要用头文件?因为我们把我们用到的函数声明都写到一个.h文件里,下次再使用时我们直接#include XXX.h即可,没有必要再对用到的函数一个一个地声明。

    完成上面的三步,我们自己的函数就制作好了,使用起来比较方便。
    这里再扩展一下
    我们在数组传入函数,传出函数时可能会面临着数组无法修改的问题,这里二郎给大家提供一个解决办法,不是最优,但是可行
    main里面:

    float key_data[10][4] = { 0 };
    my_f(img_cir_L, img_cir_R, key_data);
    

    函数里面:

    void my_f(Mat rectifyImageL, Mat rectifyImageR, float(&key_data)[10][4])
    

    头文件里面:

     void my_f(Mat rectifyImageL, Mat rectifyImageR, float(&key_data)[10][4]);
    

    这样便能实现数组数据的传入和处理后结果的传递了

    展开全文
  • 调用函数返回数组

    2020-07-19 16:12:51
    调用函数返回数组 1、传递函数 #include<stdio.h> #define maxn 4 void rink(int a[maxn]) { for(int i=0;i<maxn;i++) a[i]=a[i]+1; } int main() { int num[maxn]={4,6,7,8} rink(num); for(int i=0...

    调用函数返回数组

    1、传递函数

    #include<stdio.h>
    #define maxn 4
    void rink(int a[maxn])
    {
    	for(int i=0;i<maxn;i++)
    		a[i]=a[i]+1;
    }
    int main()
    {
    	int num[maxn]={4,6,7,8}
    	rink(num);
    	for(int i=0;i<maxn;i++)
    		printf("%d",num[i]);
    	return 0;
    }
    

    2、使用全局变量

    #include<stdio.h>
    #define maxn 4
    int num[maxn]={4,6,7,8};
    void rink()
    {
    	for(int i=0;i<maxn;i++)
    		num[i]=num[i]+1;
    }
    int main()
    {
    	rink();
    	for(int i=0;i<maxn;i++)
    		printf("%d",num[i]);
    	return 0;
    }

    3、使用静态变量
    c语言不能返回一个局部变量,因为局部变量仅仅作用于本函数,函数调用结束,存储空间会被释放。除非加上static,变成静态变量

    #include<stdio.h>
    #define maxn 4
    int num[maxn]={4,6,7,8};
    int *rink()
    {
    	static int b[maxn];//静态变量
    	for(int i=0;i<maxn;i++)
    		b[i]=num[i]+1;
    	return b;
    }
    int main()
    {
    	int *shu;//定义指针
    	shu=rink();
    	for(int i=0;i<maxn;i++)
    		printf("%d ",shu[i]);
    	return 0;
    }
    展开全文
  • 数组作为函数参数的函数调用

    万次阅读 2018-11-28 15:04:44
    调用有参函数时需要提供实参,实参可以是常量变量或者表达式,数组元素就相当于变量,因此数组元素可以用作函数实参,但是不能用作函数形参(因为在函数调用时临时分配存储单元,不可能为一个数组单独分配存储单元...
  • NULL 博文链接:https://touch-2011.iteye.com/blog/1038925
  • 在写一个简单的选择排序时,发现如果不在调用排序函数时传入数组大小,程序得不到预期结果,经过调试,发现原来在不同地方sizeof(A)的结果是不同的,具体如下 #include<cstdio> #include<iostream> ...
  • 直接上代码 #include using namespace std; int p[20]; void change(int *p){ for(int... } 输出为 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 如果你传入的指针指向的是一个数组,在函数体中就可以直接用数组下标等操作
  • 详解C语言指针函数函数指针、函数指针数组

    万次阅读 多人点赞 2018-07-09 11:08:24
    而在指针中,指针函数函数指针、指针函数数组函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1. 指针函数 指针函数就是返回指针值...
  • int *TestCode(int ...这样在主函数内通过返回值可以对frame数组起到修改的作用 int *TestCode(int frame[]) { for (int i = 0; i < 200; i++) { frame[i] = i; test[i]=frame[i]; } return test; } 这
  • 函数指针数组示例

    2014-10-11 13:33:05
    C语言中对函数指针数组不是很了解,老师最近布置了一个作业,就搜集资料写了一个,希望能给大家启发,如果对C语言复杂指针的分析不是很懂得话,可以网上搜索“右左法则”
  • VB调用数组的小例子

    2012-08-09 11:48:42
    摘要:VB源码,其它类别,数组  VB调用数组的小例子,在程序内部调用数组中的数据。
  • 指针数组综合使用(函数调用

    千次阅读 2019-01-09 22:28:34
    **题目:就是对一组字符串进行排序,采用冒泡法进行,并要求使用指针和调用函数,**后买你需要用到从文件中读取数据,然后进行字符分割,从而通过冒泡排序进行结果显示,最后需要以二进制的形式写在另一个文档中,这...
  • /*----------------------------------------------------------------------------------------------------------------------------- ... 排序函数sort算法:将每一轮循环比较中最小的值,赋给array[k],再将...
  • JS调用函数传递数组

    千次阅读 2015-10-14 15:30:55
    Js调用函数值传递数组,ajax直接用数组提交 Html代码: " style="max-width: 60px;"/> " href="#" onclick="sendOrder('m/order/send.do',{'userId':'', 'orderId':'', 'inputId':'reason'});return false;...
  • 源代码如下: #include using namespace std; const int ArraySize = 5; void arraytestinput(int arrayinput[]) { cout ; for (int i = 0; i ; i
  • 数组名做函数参数与用数组元素作实参有几点不同: (1)用数组元素作实参时,只要数组类型和函数的形参...在函数调用时进行的值传递是把实参变量的值赋予形参变量。在用数组名做函数参数时,不是进行值的传递,即不
  • 我的二维数组具体的个数在键盘输入,怎么在输入n和m的值后调用函数,谢谢![图片](https://img-ask.csdn.net/upload/201703/22/1490151078_791611.jpg)
  • 用C语言写了一个输入一个一维数组函数,但是在主函数中并不能调用数组,能通过编译。求大佬解读问题所在!!! ![图片说明](https://img-ask.csdn.net/upload/201907/21/1563700824_777440.png)
  • 数组函数方法调用

    千次阅读 2020-10-27 09:48:43
    数组函数方法调用 1:map() 此方法是将数组中的每个元素调用一个提供的函数 如果作为一个新的数组返回 并没有改变原数组 var arr = [1,2,3,4,5]; var newArr1 = arr.map(function(a){ // 将条件的结果返回到新数组...
  • 定义的二维数组为全局变量,在主函数中有多个子函数要用到它。请问下大家,子函数中计算的此二维数组的值间能传递么?还是也需要调用呢?~~
  • C++函数数组

    千次阅读 2019-01-25 14:21:03
    我们经常使用到数组,以C++的基本数据类型作为存储对象,而在某些特殊的情况下,我们需要使用到函数数组函数指针(譬如回调函数),其实质为一个指针数组数组内存储着各个函数的指针地址,在被调用时得到使用。...
  • C++引用&函数传递数组例子

    万次阅读 2018-04-30 09:56:44
    #include &lt;iostream&gt;using namespace std;/*排序*/void xll(int (&...//排序函数int main(){ int a[5] = {1,8,5,6,3}; xll(a); return 0;}void xll(int (&amp;ac)[5]){ int c; for(int i = ...
  • c函数传递数组

    千次阅读 2019-07-27 09:38:23
    如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。同样地,您也可以传递一个多维数组作为...
  • C语言函数中的数组传递

    千次阅读 2019-07-02 17:17:14
    #include <stdio.h> typedef unsigned char uchar; //---------------------------------------------------全局...//---------------------------------------------------子函数声明 void func3(void)...
  • 数组名作为函数参数的调用

    千次阅读 2020-03-08 22:12:15
    数组名做形参时,只需要数组名就好了; void GetData(int a[],int k);...定义函数GetData()用于接收键盘输入的一组整形数据,并放入一维数组中; 另外再定义一个函数Sort()用于对输入的这组数据按照降序排...
  • 调用含有数组函数

    2020-02-24 14:40:51
    //在函数定义中的int a[]等价于int *a int main ( ) { int m ; scanf ( "%d" , & m ) ; int b [ m ] ; for ( int i = 0 ; i < m ; i ++ ) scanf ( "%d" , & b [ i ] ) ; f ( b , m ) ; ...
  • 函数调用:int a[10]={3,7,9,11,0,6,7,5,4,2}; fun(a,10); 示例代码 #include <stdio.h> void fun(int arr[], int n) { int i = 0; for(i=0; i<n; i++) { printf("%d ", arr[i]);
  • 函数的地址可以通过取地址函数名拿到,也可以通过函数名直接拿到。2.函数指针 (1)定义一个函数test void test(char *str) {  printf("%s\n",str); } int main() {  //函数指针的定义方式  void (*p...
  • 在C++中用函数调用二维数组

    千次阅读 2019-11-09 10:55:45
    函数调用二维数组 #include #include using namespace std; void fun(int a[3][3]); int main() {  int b[3][3] = {1,1,1,2,2,2,3,3,3};  fun(b); } void fun(int a[3][3]) {  int i,j;  for ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,145,905
精华内容 458,362
关键字:

函数调用数组