精华内容
下载资源
问答
  • C++结构体作为函数参数传参

    万次阅读 2020-06-25 10:45:56
    #include<iostream> using namespace std; #include<... *结构体作为函数参数传参 */ //值传递 void printStufdent1(struct Student st3) { cout << "子函数" << endl; st3.age .
    #include<iostream>
    using namespace std;
    
    #include<string>
    
    
    //结构体
    struct Student {
    
    	string name;
    	int age;
    	int score;
    
    }st3;
    
    
    /*
     *结构体作为函数参数传参
     */
    //值传递
    void printStufdent1(struct Student st3) {
    	cout << "子函数" << endl;
    	st3.age = 100;
    
    	cout << "名字:" << st3.name << "	年龄:" << st3.age << "	分数:" << st3.score << endl;
    
    }
    //地址传递
    void printStufdent2(struct Student * p) {
    	p->age = 200;
    	cout << "子函数" << endl;
    	cout << "名字:" << p->name << "	年龄:" << p->age << "	分数:" << p->score << endl;
    
    }
    
    
    int main() {
    
    	struct Student st1;
    	st1.name = "zhangsan";
    	st1.age = 18;
    	st1.score = 60;
    	//cout << "名字" << st1.name << "年龄" << st1.age << "分数" << st1.score<< endl;
    	struct Student st2={"李四",20,70};
    //	cout << "名字" << st2.name << "年龄" << st2.age << "分数" << st2.score<< endl;
    	
    	
    	st3.name = "王五";
    	st3.age = 19;
    	st3.score = 59;
    
    	printStufdent1(st3);
    	cout << "main函数" << endl;
    	cout << "名字:" << st3.name << "	年龄:" << st3.age << "	分数:" << st3.score << endl;
    
    	printStufdent2(&st3);
    	cout << "main函数" << endl;
    	cout << "名字:" << st3.name << "	年龄:" << st3.age << "	分数:" << st3.score << endl;
    
    	system("pause");
     }
    
    

    从结果我们知道结构体作为函数的参数传参有两种形式 

    展开全文
  • 函数参数设置为 None,在python中,可变函数参数不输入为空的时候,应该用None代替不输入的真空。 示例代码: def Kong(None): pass

    将函数参数设置为 None,在python中,可变函数参数不输入为空的时候,应该用None代替不输入的真空。

    示例代码:

    def Kong(None):
    	pass
    
    展开全文
  • C语言函数作为函数参数

    千次阅读 多人点赞 2019-09-13 11:35:15
    c,c++中是可以向Python那样将函数作为函数参数的,具体实现方法如下

    C语言函数作为参数

    为了满足DRY思想,减少代码的重复性,考虑将函数作为参数传入另一函数中。C语言是可以将函数作为函数参数的。
    用到的方法是函数指针。
    首先需要明确的是, 在C语言中,函数名就是函数的首地址,所以将函数作为函数参数的思路是将函数地址传入,形参是一个指针类型的变量,形参的基类型为函数原型。
    参数原型为:
    ElemType(*FunctionName)(ElemType, ElemType, ......)
    其中:ElemType为声明(如int, float, double,struct等)
    以冒泡排序为例借助判断大小函数进行数组排序的具体实现方法如下:

    #include <stdio.h>
    
    #define YES 1
    #define NO 0
    
    ///*判断函数,进行元素大小判断,increase判断大小比较*/
    int compare(int a, int b, int increase)
    {
    	if (increase > 0) {
    		if (a > b) return YES;
    		else return NO;
    	}
    	else
    	{
    		if (a < b)  return YES;
    		else return NO;
    	}
    }
    /*冒泡排序进行数组排序*/
    void OrderArr(int arry[], int(*compare)(int, int, int), int length, int increase = 1)
    {
    	for (int i = 0; i < length - 1; i++)
    	{
    		for (int j = 0; j < length - i - 1; j++)
    		{
    			if (compare(*(arry + j), *(arry + j + 1), increase))
    			{
    				int temp = *(arry + j + 1);
    				*(arry + j + 1) = *(arry + j);
    				*(arry + j) = temp;
    			}
    		}
    	}
    }
    
    /*输出函数*/
    void Print(int a[], int length)
    {
    	for (int i = 0; i < length; i++)
    	{
    		printf("%d ", *(a + i));
    	}
    	printf("\n");
    }
    
    int main()
    {
    	int a[5] = { 1, 4, 2, 6, 3 };
    	//增序排列数组
    	OrderArr(a, compare, 5);
    	Print(a, 5);
    	//降序排列数组
    	OrderArr(a, compare, 5, -1);
    	Print(a, 5);
    }
    
    展开全文
  • http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000########################################################函数参数:...

    参考:

    http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000


    ########################################################


    函数参数:必选参数、默认参数、可选参数、关键字参数


    ########################################################


    默认参数:放在必选参数之后

    计算x平方的函数:

    1. def power(x):
    2. return x*x
    power(5)



    计算x的立方

    1. def power(x):
    2. return x*x*x

    这样的话每次计算不同幂函数都要重写函数,非常麻烦,可使用以下代码计算:

    1. def power(x, n):
    2. s=1
    3. while n>0:
    4. n=n-1
    5. s=s*x
    6. return s



    使用修改后的power函数,可以计算任意n次方

    不过每次调用函数必须输入两个参数,使用默认参数可以进一步简化函数:

    1. def power(x, n=2):
    2. s=1
    3. while n>0
    4. n=n-1
    5. s=s*x
    6. return s



    设置默认参数时注意事项:必选参数在前,默认参数在后


    默认参数最大好处:降低调用函数的难度

    学生注册,需要传入name和gender:

    1. def enroll(name, gender):
    2. print 'name :',name
    3. print 'gender :',gender

    如果继续传入年龄、城市等信息咋么办,这会使得调用函数的复杂度大大增加:

    把年龄、城市设为默认参数可以简化函数:

    1. def enroll(name, gender, age=6, city='Beijing'):
    2. print 'name :',name
    3. print 'gender :',gender
    4. print 'age :',age
    5. print 'city :',city



    有多个默认参数化时,调用的时候,既可以按顺序提供默认参数,比如调用enroll('zj', 'M', 8);也可以不按顺序提供部分默认参数,如enroll('Ad', 'a', city='dad')

    默认参数也有缺陷的地方:

    1. def add_end(L=[]):
    2. L.append('END')
    3. return L



    原因:函数在定义时,默认参数L所制定的地址已经确定,而L是一个list,所以每次调用该函数时,如果改变了L的内容,则下次调用时,默认参数的内容就会改变

    note: 默认参数必须指向不变对象!!!

    如上代码可使用None实现:

    1. def add_end(L=None):
    2. if L is None:
    3. L=[]
    4. L.append('END')
    5. return L



    ##################################################################


    可变参数:就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个

    在参数前面加上*就是可变参数。在函数内部,参数numbers接收得到的是一个tuple,调用该函数时,可以传入任意个参数,包括0个参数:

    1. def calc(*numbers):
    2. sum=0
    3. for n in numbers:
    4. sum= sum+n*n
    5. return sum



    如何调用一个list或者tuple,可以如上所示,在list或tuple前面加上一个*号,把list或tuple的元素变成可变参数传进去


    ####################################################################


    关键字参数

    允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装成一个dict

    使用**表示关键字参数




    函数person不仅可以只传入必选参数,也可以传入任意个数的关键字参数


    也可以类似可变参数,先组装一个dict,然后,把该dict转换为关键字参数传进去:

    1. kw={'city':'Beijing', 'job':'Engineer'}
    2. person('Jack', 24, city=kw['city'], job=kw['job'])
    3. person('Jack' ,24, **kw)



    #############################################################


    参数组合

    参数定义的顺序:必选参数、默认参数、可变参数和关键字参数




    #######################################################


    in summary:

    默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误!

    *args是可变参数,args接收的是一个tuple;

    **kw是关键字参数,kw接收的是一个dict

    展开全文
  • ES6函数参数解构

    万次阅读 多人点赞 2018-10-10 20:23:44
    ES6函数参数解构 常规的JavaScript若要给函数传递的参数是一个对象,需要像下面这样来实现: function sayName(person) { if(Object.prototype.toString.call(person) == '[object Object]') { console.log( `${...
  • js匿名函数作为函数参数 (返回值作为另一个函数的参数)
  • 函数参数的默认值

    千次阅读 2018-01-21 21:59:47
    函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y) { y = y || 'World'; console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China...
  • 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会...
  • python函数除了不带参数,带固定参数之外,还有另外三类函数参数有重要使用价值,是提升python水平需要强化的内容。它们是默认参数、元组参数和字典参数。下面举例子说明。 1.默认参数 即在函数定义时赋值的参数。...
  • C++(笔记)容器(vector)作为函数参数如何传参

    万次阅读 多人点赞 2017-05-17 17:51:54
    一、大致以下类型 void 函数名( vector< int> obj ); void 函数名( vector* pobj );... // 在函数内不能改变 pobj 指向的对象 ,//调用时不会调用拷贝构造函数 void 函数名( vector< int>& obj ); void
  • C++函数参数的默认值

    千次阅读 2018-11-03 13:30:20
    一、函数参数的默认值 1:函数参数的默认值就是说在声明函数或者定义函数的时候直接在参数后给赋值,这样在函数调用的时候调用方可以不用再给传值,它会默认使用它的默认值 错误实例: 在给函数参数赋默认值...
  • 函数参数(Function parameter)EDIT 从ECMAScript 6开始,有两个新的类型的参数:默认参数(default parameters),剩余参数(rest parameters)。 默认参数(default parameter) 在JavaScript中,函数参数的...
  • 1.作为返回值 作为函数参数 https://bbs.csdn.net/topics/340095770
  • Shell脚本函数定义和函数参数

    千次阅读 2017-07-06 15:46:45
    这篇文章主要介绍了Shell脚本函数定义和函数参数,分别介绍了2种自定义函数的方法,以及定义带返回值函数的方法,需要的朋友可以参考下 一、Shell函数 本教程目前为止所有脚本都是从头到尾执行。这样做很好,...
  • C语言中函数参数传递的三种方式

    万次阅读 多人点赞 2017-07-22 21:09:40
    C语言中函数参数传递的三种方式(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址...
  • 函数参数默认值设置

    千次阅读 2017-03-15 11:23:06
    函数参数默认值设置规则: 一个函数中如果有多个形参,那么可以给该函数的部分或 全部参数设置默认值。 设置默认值顺序,在给部分参数设置默认值的时候,需要从右向左依次进行设置,在调用这个函数时,实参匹配的...
  • 指针作为函数参数 1. 函数参数概念:  形参:被调函数中的参数  实参:主调函数中的参数  形参和实参:  C 中函数中实参和形参是按值传递的,调用函数后,会将实参的值拷贝给形参(即形参和实参之间是没有...
  • Typescript 函数参数占位

    千次阅读 2018-04-07 15:34:53
    如果你没有在tsconfig中设置noUnusedParameters为True的话,当你函数参数声明但没有使用的时候就会报错:’parameter’ is declared but its value is never read.可是在一些回调函数当中,我们不得不声明一个以后...
  • 用数组名作函数参数

    千次阅读 2019-05-31 18:46:10
    关于用数组名作函数参数有两点要说明: (1) 如果函数实参是数组名,形参也应为数组名(或指针变量),形参不能声明为普通变量(如int array;)。实参数组与形参数组类型应一致(现都为int型),如不一致,结果将出错。 (2) 需要...
  • Object-C 函数参数语法

    千次阅读 2018-03-15 20:56:50
    Object-C函数参数 Object-C的函数参数语法比较特别 通常的编程语言比如Java和C++ 都是 void p_fun_test(int array, int size); shell的函数参数则是匿名的 通过$1这样的数字来表示不同顺序上的参数 function p_fun_...
  • php中函数参数传递

    千次阅读 2017-04-29 22:41:52
    php中函数参数传递有形参传递(借用c语言等编程语言的说法)。 即就是把变量的值赋值给函数的参数,对函数参数所做的一切操作都与原始变量无关。
  • js匿名函数作为函数参数

    千次阅读 2015-03-06 10:25:42
    由衷的感叹,js真是烦。 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长。...温故知新,今天又回味了一遍,匿名函数作为函数参数。 代码很短,五脏俱全。 function t
  • python 函数参数:必选参数、默认参数、可变参数、关键字参数 和 命名关键字参数 在 Python 中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数 5种参数形式。 这 5 种参数都可以组合...
  • 在声明函数原型时,为一个或者多个形参指定默认值,以后调用这个函数时,若省略某一个实参,c++则自动的以默认值作为相应参数的值。 实列说明: #include<iostream> using namespace std; int add(int x=4,...
  • C语言指针变量作为函数参数

    千次阅读 多人点赞 2018-10-26 09:34:27
    用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。 像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法...
  • C语言二维数组作为函数参数传递

    万次阅读 多人点赞 2018-06-07 21:43:37
    二维数组作为函数参数 二维数组作为函数的参数,实参可以直接使用二维数组名,在被调用函数中可以定义形参所有维数的大小,也可以省略以为大小的说明。例如: void find(char a[3][10]); void find (char a[ ]...
  • c语言中函数参数处理顺序 下面我们来看2个案例,分析下c语言中函数参数处理顺序。 第一个: #include "stdio.h" void fn(int a,int b,int c) { printf("%d,%d,%d", a, b, c); } void main() { int a = 3; ....
  • vim YCM补全函数参数配置方法

    万次阅读 2020-07-12 11:48:41
    这里推荐一个插件,可以提供YCM对于函数参数的自动补全。 基础配置 向.vimrc中添加以下代码: inoremap <silent><expr> ( complete_parameter#pre_complete("()") smap <c-j> <Plug>...
  • 数组作为函数参数使用方法总结

    千次阅读 2019-10-24 22:07:43
    C/C++数组作为函数参数使用方法总结 一维数组作为函数参数的三种方法: 方法1:形参与实参都用数组; 方法2:形参与实参都用对应数组的指针; 方法3:实参用数组名,形参用引用; 二维数组作为函数参数的四种方法...
  • C#函数参数默认值及指定传参

    万次阅读 2018-07-20 15:16:59
    通过函数参数设置默认值,加上调用的一些小技巧,可以使代码变得简洁优雅,同时也简化了调用。本文介绍C#函数参数默认值初始化,调用函数传参的顺序传参、指定参数传值,函数默认参数值的工作机制。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 446,131
精华内容 178,452
关键字:

函数参数