电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

Arduino-变量和常量-系列3

作者:佚名    文章来源:网络    点击数:    更新时间:2023/11/26

在之前的学习中,我们简单介绍了Arduino的数据类型,下面一起来学习Arduino的变量和常量。首先是变量,在开始了解变量之前,理解变量的范围是非常重要的。

 

什么是变量范围?Variable Scope

Arduino使用的 C 语言变量中有一个名为scope的属性。scope 也就是范围是程序的一部分,变量又分为三种类型,分别是:

  1. 在函数或块内部的变量,称为局部变量。
  2. 在函数参数中定义的变量,称为形参。
  3. 在所有函数之外定义的变量,它被称为全局变量。

局部变量 Local Variables

在函数或区块中声明的变量是局部变量。它们只能由位于函数或代码块内的语句使用,局部变量不会在函数或代码块之外起作用。 下面是使用局部变量的示例 :

Void setup () {
}
Void loop () {
int x , y ;
int z ; //声明局部变量
x = 0;
y = 0; //实际参数
z = 10;
}

全局变量 Global Variables

全局变量在所有函数之外进行定义,通常在程序的顶部区域。全局变量将在程序的整个生命周期中发挥作用。全局变量一旦定义,任何函数都可以访问和使用它,也就是说,一个全局变量在声明之后在整个程序中都可以使用。下面的示例使用了全局变量和局部变量 :

Int T , S ;
float c = 0 ; //声明全局变量;
Void setup () {
}
Void loop () {
int x , y ;
int z ; //声明局部变量
x = 0;
y = 0; //实际参数
z = 10;
}

形式参数 formal parameter

在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

实际参数 actual parameter

实参本身不属于变量范畴,它是函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

形参和实参的联系

实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

请看下面的例子:

#include <stdio.h>
/*
*计算从m加到n的值
*/
int sum(int m, int n) {
int i;
for (i = m+1; i <= n; ++i) {
m += i;
}
return m;
}
int main() {
int a, b, total;
printf("Input two numbers: ");
scanf("%d %d", &a, &b);
total = sum(a, b);
printf("a=%d, b=%d\n", a, b);
printf("total=%d\n", total);
return 0;
}

在这段代码中,函数定义处的 m、n 是形参,函数调用处的 a、b 是实参。通过 scanf() 可以读取用户输入的数据,并赋值给 a、b,在调用 sum() 函数时,这份数据会传递给形参 m、n。

Tags:Arduino,变量和常量,程序  
责任编辑:admin
  • 上一个文章:
  • 下一个文章:
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询