重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C++中,变量定义可以在函数中的任意位置。
专注于为中小企业提供网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业若羌免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
比如函数中任意位置出现的For循环中:
for(int i = 0; i len; i++) {
/*do something;*/
}
变量i就可以在使用到的地方才给定义;
然而在C语言中,变量的定义一定要在函数体的最开始处;
否则在使用到变量的地方才定义,编译的时候会报不认识此变量。
变量的存储类别决定了变量中的数据在计算机内存中的存储位置。C语言中局部变量存放在动态存储区,全局变量或者静态变量存放在静态存储区。下面是关于C语言变量的定义与使用,欢迎参考!
如果要为单片机控制系统编写出高质量的C语言程序,合理的定义并使用变量是非常重要的。程序是用来处理数据的,而变量就是用来存储数据的。每定义一个变量,编译器就会在系统的RAM中分配一个物理存储区域。在单片机控制系统中,RAM资源是非常有限的,作为单片机程序员,绝对不能随意的定义变量,需要精打细算合理定义。为了实现这个目标,必须要对变量的多个特性有深刻的认识。
变量特性:
第一、变量定义要选择恰到好处的类型,变量的类型直接决定了它所存储的数据取值范围,这类似于我们生活中使用的各种容器,选择合适的变量类型,不但能保证数据存储安全,还能有效的节约系统资源;
第二、变量的作用范围必须清楚,C语言最基本的功能单元是函数,在函数内部使用的变量是私有变量,只能在函数内部使用。多个函数组成一个程序的功能模块,并安置在某一个C文件中,在这些函数的头部定义的变量是静态变量(局部变量),这种类型的变量模块内部的函数都可以访问。如果在模块内部声明变量,并在该模块的头文件中导出,该类型变量就是全局变量,全局变量在整个工程中的所有函数都可以访问;
第三、变量占用的RAM资源,私有变量是可以释放的,静态变量与全局变量是不可以释放的。也就是说在程序运行的整个过程中,私有变量占用资源可以供不同的函数重复利用,而静态变量与全局变量是完全被占用不能重复利用的;
第四、变量可以存放常数,但因为单片机RAM资源有限,强烈建议不要用变量存放常量,而是在资源相对丰富的FlashROM中存放常量;
第五、局部变量与全局变量对于函数来说,访问非常方便,但缺点显而易见:访问的函数越多,数据的安全性越低,一旦出现数据异常,很难排除问题。所以,请尽量减少局部变量与全局变量的使用;
第六、函数的型参个数尽量减少,这样型参只会占用通用寄存器组来完成参数传递工作。如果参数过多,编译器可能会被迫分配占用RAM资源,这样不但参数传递效率变低,同时还会导致RAM资源浪费;
明确上述变量定义与使用特点后,在编写程序的时候,一定要利用好这些特性并结合程序的特点,灵活的使用各种类型、各种作用范围的变量,使程序在最大限度上得到优化,使系统性能提升至最优的状态,才是我们嵌入式开发者的终极目标!
拓展:C语言入门学习
什么人需要学习C语言?
从51JOB的统计数据来看,选择C语言人才的企业多数以电子工程师、嵌入式工程师、硬件工程师、IOS工程师等为主,学历本科以上相关专业,三年以上工作经验,且外语水平要求至少四级以上。既然C语言学习者的就业门槛那么高,为什么还有很多人执着的去学习C语言呢?总结而言,无外乎以下几点原由:
1)C语言不是面向对象语言。
因为这一点,任何学习C语言的人必须学会用函数思考问题。当你真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对比。这会使学习面向对象编程更容易理解和更有乐趣。
2)用C编程就像进行智力体操。
你要顾及到每一件事情,而这在很多其他语言中他会为你处理。你要管理指针,内存分配,和内存回收。你要明白如何处理串,还有动态数据。在其他语言中,所有这些对你来说是隐藏的。你不知道他们如何运行,更不用说改变他们的运行方式了。你得到了使用的便利,失却了对程序的控制和速度。很多情况下,这是笔值得的买卖。其他的情况下就不是这样了。
3)不同情况下你会使用不同的编程语言。
某些情况下要求使用Lisp,其他的要Java,还有别的要C++。但是C是你坚实的基础。你可能不会使用它做一些项目,但是它会帮助提高你的能力,熟练的用其他语言编程。
4)除了汇编语言之外,C代码生成的程序比其他任何语言生成的程序来得更小和运行更快。
那么为什么不学汇编语言呢?汇编是一门学了很有用的.语言,但是它没有C那样的可移植性,并且其他流行的语言比如JAVA的语法是基于C的,而不是汇编。你仍然应该学汇编,但它并不会证明它会像学C那样有用。
5)如果你想要写一个视频游戏引擎或操作系统,你会需要C。
你不能使用C#, Java, 或 Basic来完成这些编程任务。
C语言的发展史:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
我适合学习C语言吗?
首先我们要认清一个事实:C语言工作者只是众多从事软件开发者中的一小部分,在深圳这样一个IT企业云集的大城市,使用其它语言从事软件开发的工作者多如牛毛,薪资待遇不比从事C语言开发的人低,当编程爱好者在选择第一个编程语言时,C语言不一定是首先。我适合学习C语言吗?解决这个问题,先回答以下几个问题:
1)你学习C语言的目的是什么?如果是想从事这方面的工作,那么请义无反顾的坚持下去,推荐你在《微机原理》、《计算机组成原理》和《计算机系统结构》三本书中选一本配合《C语言程序设计》来看,这样可以融汇贯通,让你对编程有更深入更系统化的理解。而这种理解对计算机类学科的学习来说很重要。
2)您具备学习C语言的条件吗?由于入职C语言编程的企业对入职者的要求比较高,在没有编程工作经验前提下多数想通过自学进入类似企业的人几乎为零,包括很多计算机专业毕业的大、中专毕业生在校期间都会学到C语言,毕业出来后依然云里雾里。C语言的开发,需要在实际工作中才能快速掌握。同时,英语(从事C语言开发需要经常查阅英文资料,尤其是单片机领域)、学历、数学算法、极强的逻辑思维能力等等也是让多数人望而却步的门槛。
c语言中常常用到变量,c语言中什么是变量呢?那么下面是我整理的c语言变量的定义,欢迎阅读。
c语言什么是变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
变量介绍
由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。变量可以保存程序运行时用户输入的数据(如使用InputBox函数在屏幕上显示一个对话框,然后把用户键入的文本保存到变量中)、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变量是用于跟踪几乎所有类型信息的简单工具。
变量声明后没有赋值的话 编译器会自动提示并赋予默认值
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。例如,可以创建一个名为Click Count的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在VB Script中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant。
声明变量
声明变量的一种方式是使用Dim语句、Public语句和Private语句在Script中显式声明变量。例如:
Dim Degrees Fahrenheit
声明多个变量时,使用逗号分隔变量。例如:
Dim Top, Bottom, Left, Right
另一种方式是通过直接在Script中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行Script时出现意外的结果。因此,最好使用Option Explicit语句显式声明所有变量,并将其作为Script的第一条语句。
命名规则
首先,我们必须给变量取一个合适的名字,就好像每个人都有自己的名字一样,否则就难以区分了。 在VB6中,变量的命名必须遵循以下规则:
(1)变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成;最后一个字符可以是类型说明符;
(2)变量名的长度不得超过255个字符;
(3)变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别、使用的作用范围——例如一个过程、一个窗体等等。有关引用变量作用范围的内容,将在以后介绍。
(4)变量名不能是VB中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名, 关键字是指VB6语言中的属性、事件、方法、过程、函数等系统内部的标识符。如已经定义的词(if、endif、while、loop等)、函数名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。 例如: strName1,intMax_Length,intLesson,strNo3等是合法的变量名,而AB,all right,3M,_Number等是非法的变量名。
注意:
(1)变量名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)。C语言中区分大小写。不同的语言有不同的规则。
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。例如:假定正在为水果铺编一个销售苹果的软件。我们需要两个变量来存储苹果的价格和销量。此时,可以定义两个名为Apple_Price和Apple_Sold的变量。每次运行程序时,用户就这两个变量提供具体值,这样看起来就非常直观。具体方法是:通过用一个或多个单词组成有意义的变量名来使变量意义明确。例如,变量名SalesTaxRate就比Tax或Rate的意义明确得多。
(3)根据需要混合使用大小写字母和数字。一个合理协议是,变量中每个单词的第一个字母大写,例如:DateOfBirth。
(4)另一个合理协议是,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如,使用strName来说明Name变量保存字符串型数据。这种命名方法叫匈牙利命名法
格式 变量类型 + 变量名字
比如刚才说的strname "str" 是"string"的缩写 "Name" 则是变量名字
注意 变量类型都是小写 而且变量名字是开头大写
C# 命名方法
1
stringstrName
VB 命名方法
1
DimstrNameasString
虽然无须过多地关注字符缩写的细节,但以后还是需要看一下这方面的约定。在Visual Basic联机帮助和许多Visual Basic高级编程的书籍中都可以找到这一约定的细节。
存活期
变量存在的时间称为存活期。Script级变量的存活期从被声明的一刻起,直到Script运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。
作用域
变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量,则该变量可以被Script中所有过程所识别,称为Script级变量,具有Script级作用域。
生存期
是指变量的分配与回收的全过程,
类型
属性变量和用户自己建立的变量。
当我们在窗体中设计用户界面时,vb6会自动为产生的对象(包括窗体本身)创建一组变量,即属性变量,并为每个变量设置其缺省值。这类变量可供我们直接使用,比如引用它或给它赋新值。
用户也可以创建自己的变量,以便存放程序执行过程中的临时数据或结果数据等等。在程序中,这样的变量是非常需要的。下面就介绍这类变量的创建和使用方法。
声明变量
变量在使用前,必须在代码中进行声明,即创建该变量。
在使用变量之前,大多数语言通常首先需要声明变量。就是说,必须事先告诉编译器在程序中使用了哪些变量,及这些变量的数据类型以及变量的长度。这是因为在编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,这样可以优化程序的执行。
声明变量有两种方式分别是隐式声明、显式声明。
隐式声明:
变量可以不经声明直接使用,此时VB给该变量赋予缺省的类型和值。这种方式比较简单方便,在程序代码中可以随时命名并使用变量,但不易检查。
显式声明:
用声明语句创建变量。
强制显式声明变量:
为了避免写错变量名引起的麻烦,用户可以规定,只要遇到一个未经明确声明就当成变量的名字,VB都发出错误警告。方法是----强制显式声明变量。要强制显式声明变量,只须在类模块、窗体模块或标准模块的声明段中加入这条语句:
Option Explicit
这条语句是用来规定在本模块中所有变量必须先声明再使用,即不能通过隐式声明来创建变量。在添加Option Explicit语句后,VB将自动检查程序中是否有未定义的变量,发现后将显示错误信息。
如果要自动插入Option Explicit语句,用户只要在“工具”菜单中选取“选项”命令,然后单击“选项”对话框中的“编辑器”选项卡,再选中“要求变量声明”选项
这样VB就会在任何新模块中自动插入Option Explicit语句,但只会在新建立的模块中自动插入。所以对于已经建立的模块,只能用手工方法向现有模块添加Option Explicit语句(只有再重新启动VB,这项功能才有效)。
理变量范围
变量的范围确定了能够知晓该变量存在的那部分代码。在一个过程内部声明变量时,只有过程内部的代码才能访问或改变那个变量的值;它有一个范围,对该过程来说是局部的。但是,有时需要使用具有更大范围的变量,例如这样一个变量,其值对于同一模块内的所有过程都有效,甚至对于整个应用程序的所有过程都有效。Visual Basic 允许在声明变量时指定它的范围。
存储类型
我们在程序中会经常定义一些变量来保存和处理数据。从本质上看,变量代表了一段可操作的内存,也可以认为变量是内存的符号化表示。当程序中需要使用内存时,可以定义某种类型的变量。此时编译器根据变量的数据类型分配一定大小的内存空间。程序就可以通过变量名来访问对应的内存了。
如果说变量的数据类型决定了对应内存的大小,那么存储类型则影响着对应内存的使用方式。所谓使用方式,具体说就是在什么时间、程序的什么地方可以使用变量,即变量的生命周期和作用域。
先了解一些基本常识。一、在程序运行时内存中有三个区域可以保存变量:静态存储区、栈(stack)和堆(heap)。二、根据变量定义的位置可分为全局变量(定义在函数体外的变量)和局部变量(定义在函数体内的变量,包括形参)。
所有的全局变量和静态局部变量(定义时使用关键字static)都保存在静态存储区,其特点是:在编译时分配内存空间并进行初始化。在程序运行期间,变量一直存在,直到程序结束,变量对应的内存空间才被释放。
而所有的非静态局部变量(又称为自动变量)保存在栈(stack)中,其特点是:在变量所在的函数或模块被执行时动态创建,函数或模块执行完时,变量对应的内存空间被释放。换句话说,函数或模块每被执行一次,局部变量就会重新被分配空间。如果变量定义时没有初始化,那么变量中的值是随机数。
所有用malloc分配的内存(又称为动态内存)都在堆(heap)中,其特点是:一般通过指针来访问动态分配的内存。即可以通过free来手动释放动态内存,也可以在程序结束时由系统自动释放。
以上讨论的是变量的生命周期,下面来看作用域。作用域指的是变量的可见范围,即在变量的生命周期内,程序的哪些部分可以使用该变量。
全局变量的作用域从定义点开始一直到源文件的结束。如果要在定义点之前使用全局变量的话就需要使用关键字extern对作用域进行扩展。全局变量缺省是可以被其他文件引用的。如果希望仅限于本文件使用的话,需要在定义时使用关键字static。
对于局部变量来说,无论是静态局部变量还是自动变量,作用域都仅限于定义该变量的函数或模块。
动态内存只要没有被释放就可以在程序的任何地方使用,前提是要知道动态内存的地址。
注:static加在全局变量前影响的是作用域,加在局部变量前影响的是生命周期。
变量类型
C语言中,变量分为全局变量和局部变量;也可以这样分:自动变量,静态变量.前者是按变量作用范围来分的,而后者是按变量存储方式来分的.
如果按存储占用空间来分,可以是整型变量,字符型变量,浮点型变量等.当然还有数组,结构体变量等.
C语言还有一个重要变量:指针变量.它存放的值是一个内存地址.
操作系统变量
操作系统变量
C语言中变量名是有大小写之分的,如SUN与sun就是两个不同的变量名。
另一点,声明变量时,可以不用声明就直接赋值来决定变量类型的语言如(javascript,flash cs3.0以前,等),这类语言变量的声明通常被称为弱类型,而如(c++等)必须先声明,后使用,而且声明时必须确定变量类型,这种就是严格的数据类型.
变量有两种类型:属性变量和用户自己建立的变量。
JavaScript
变量
正如代数一样,JavaScript 变量用于保存值或表达式。
可以给变量起一个简短名称,比如 x,或者更有描述性的名称,比如 length。
JavaScript 变量也可以保存文本值,比如 carname="Volvo"。
变量名称的规则
变量对大小写敏感(y 和 Y 是两个不同的变量)
变量必须以字母或下划线开始
注释:由于 JavaScript 对大小写敏感,变量名也对大小写敏感。
实例
在脚本执行的过程中,可以改变变量的值。可以通过其名称来引用一个变量,以此显示或改变它的值。
本例为您展示原理。
声明(创建) JavaScript 变量
在 JavaScript 中创建变量经常被称为“声明”变量。
您可以通过 var 语句来声明 JavaScript 变量:
var x; var carname;
var x; var carname;
在以上声明之后,变量并没有值,不过您可以在声明它们时向变量赋值:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
注释:在为变量赋文本值时,请为该值加引号。
向 JavaScript 变量赋值
通过赋值语句向 JavaScript 变量赋值:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
变量名在 = 符号的左边,而需要向变量赋的值在 = 的右侧。
在以上语句执行后,变量 x 中保存的值是 5,而 carname 的值是 Volvo。
向未声明的 JavaScript变量赋值
如果您所赋值的变量还未进行过声明,该变量会自动声明。
这些语句:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
与这些语句的效果相同:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
重新声明 JavaScript变量
如果您再次声明了 JavaScript 变量,该变量也不会丢失其原始值。
var x = 5; var x;
var x = 5; var x;
在以上语句执行后,变量 x 的值仍然是 5。在重新声明该变量时,x 的值不会被重置或清除。
JavaScript算术
正如代数一样,您可以使用 JavaScript 变量来做算术:
y = x - 5; z = y + 5;
y = x - 5; z = y + 5
php中的变量类型
PHP 中的变量:变量用于存储值,比如数字、文本字符串或数组。
一旦设置了某个变量,我们就可以在脚本中重复地使用它。
PHP 中的所有变量都是以 $ 符号开始的。
在 PHP 中设置变量的正确方法是:
$var_name = value;PHP 的入门者会忘记在变量的前面的 $ 符号。如果那样做的话,变量将是无效的。
我们创建一个存有字符串的变量,和一个存有数值的变量:
不必向 PHP 声明该变量的数据类型。
根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。
在强类型的编程语言中,您必须在使用前声明变量的类型和名称。
在 PHP 中,变量会在使用时被自动声明。
php 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
变量名与 php 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*'。
注: 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff)。
php 3 中,变量总是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。有关这种类型的赋值操作,请参阅表达式一章。
php 4 提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。这同样意味着其中没有执行复制操作;因而,这种赋值操作更加快速。不过只有在密集的循环中或者对很大的数组或对象赋值时才有可能注意到速度的提升。
使用引用赋值,简单地将一个 符号加到将要赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:
有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。
变量的命名规则:
变量名必须以字母或下划线 "_" 开头。
变量名只能包含字母数字字符以及下划线。
1、首先,我们可以在函数外面定义变量,就是全局变量。
2、局部变量可以与全局变量同样命名。
3、但是优先级是局部变量优先。
4、但是局部变量的生命周期是整个结构内。
5、全局变量是整个程序结束,才释放。
6、我们也可以为变量加上修饰符。