先举个简单例子:
#include <iostream>
using namespace std;
void Add1(int a)
{
(a)++;
}
void Add2(int a)
{
a++;
}
int main()
{
int x=1,y=5;
Add1(&x);
Add2(y);
cout<<x<<" "<<y<<endl;
return 0;
}
输出:
2 5
这两个自加函数中,Add1是指针传递,Add2是数值传递,
在调用Add2(y)时,系统是先建造一个int型变量a,再将y的值传给a(此时y和a是两个不同地址的变量,只是两者值相同),然后a++,却对y没有任何 *** 作,故在函数调用结束后,释放a,而y没任何变化;
在调用Add1(&x)时,系统先建造int型指针a,然后将实参x的地址传给了指针a,故此时a与&x是指向同一地址,即共享统一数据,当对地址a内的数据进行 *** 作,就是对x进行 *** 作。a++时自然也对x++,当函数调用结束,指针a释放掉,x的值此时已经发生了变化。
这就是两者不同,地址传递的参数都是指针类型,于数值传递不一样。
至于选择那种传递,就要看这个程序的具体目的和功能了,一般要对参数进行修改的要用地址传递,而只是调用参数的数据进行其他计算并不需要修改数据本身宜用数值传递。
还有什么不明白吗
考试内容
一、Python语言的基本语法元素
1、程序的基本语法元素:程序的格式框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、引用;
2、基本输入输出函数:input()、eval()、print();
3、源程序的书写风格;
4、Python语言的特点。
二、基本数据类型
1、数字类型:整数类型、浮点数类型和复数类型;
2、数字类型的运算:数值运算 *** 作符、数值运算函数;
3、字符串类型及格式化:索引、切片、基本的format()格式化方法;
4、字符串类型的 *** 作:字符串 *** 作符、处理函数和处理方法;
5、类型判断和类型间转换。
三、程序控制结构
1、程序的三种控制结构;
2、程序的分支结构:单分支结构、二分支结构、多分支结构;
3、程序的循环结构:遍历循环、无限循环、break和continue循环控制。
4、程序的异常处理:try-except。
四、函数和代码复用
1、函数的定义和使用;
2、函数的参数传递:可选参数传递、参数名称传递、函数的返回值;
3、变量的作用域:局部变量和全局变量。
五、组合数据类型
1、组合数据类型的基本概念;
2、列表类型:定义、索引、切片;
3、列表类型的 *** 作:列表的 *** 作函数、列表的 *** 作方法;
4、字典类型:定义、索引;
5、字典类型的 *** 作:字典的 *** 作函数、字典的 *** 作方法。
六、文件和数据格式化
1、文件的使用:文件打开、读写和关闭;
2、数据组织的维度:一维数据和二维数据;
3、一维数据的处理:表示、存储和处理;
4、二维数据的处理:表示、存储和处理;
5、采用CSV格式对一二维数据文件的读写。
七、Python计算生态
1、标准库:turtle库(必选)、random库(必选)、time库(可选);
2、基本的Python内置函数;
3、第三方库的获取和安装;
4、脚本程序转变为可执行程序的第三方库:PyInstaller库(必选);
5、第三方库:jieba库(必选)、wordcloud库(可选);
6、更广泛的Python计算生态,只要求了解第三方库的名称,不限于以下领域:网络爬虫、数据分析、文本处理、数据可视化、用户图形界面、机器学习、Web开发、游戏开发等。
二级Python语言程序设计考试基本要求
1、掌握Python语言的基本语法规则;
2、掌握不少于2个基本的Python标准库;
3、掌握不少于2个Python第三方库,掌握获取并安装第三方库的方法;
4、能够阅读和分析Python程序;
5、熟练使用IDLE开发环境,能够将脚本程序转变为可执行程序;
6、了解Python计算生态在以下方面(不限于)的主要第三方库名称:网络爬虫、数据分析、数据可视化、机器学习、Web开发等。
Keil里函数的参数为枚举类型时,可以通过定义一个枚举变量,将其作为参数传入函数中,以实现函数的参数传递。比如定义一个枚举变量type,其取值有A、B、C,那么可以将其作为函数参数传入,比如函数func,函数声明为func(type t),那么可以在函数调用时传入参数func(A),func(B),func(C),从而实现枚举类型参数的传递。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)