(6)C++变量

变量是什么?

变量是一个具名的、可供程序操作的存储空间。

变量定义的基本形式: 一个类型说明符和一个或多个变量名组成的列表,其中变量名以逗号隔开,最后以分号结尾,

如:int a,b,c,d; 

   定义了变量的类型不仅定义了变量的内容,还定义了这个变量可以进行的运算。
   在变量定义的同时,还可以为这个变量赋初值。那初值是什么,初值是初始值的简称。当变量在创建时获得了一个特定的值,我们称这个过程为初始化,也叫赋初值。
 (注意:赋初值(初始化)是创建变量时赋予一个初始值,而赋值的含义是把变量或其他数据的当前值擦掉,而以一个新的值来替代

初始化有几种形式(显示初始化):
一 在变量定义是利用等号赋初值,如  int a =1;
二 用花括号初始变量,如 int a{1};
三 用括号初始变量,如  int a(1);
四 等号花括号相结合,int a={1};

我们知道变量定义了之后,可以赋初值也可以不赋初值,如果我们直接使用没有赋初值的变量会发生什么呢?
如果内置类型的变量未被显示初始化,它的值由定义的位置决定。有两种情况:其一是定义在任何函数体之外的变量被默认初始化值为0,其二是定义在函数体内部的内置类型变量将不被初始化,一个未初始化的内置类型变量的值是未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。

变量的声明和定义的关系:
声明:使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的
     声明。

定义:负责创建与名字关联的实体。

    变量的声明规定了变量的类型和名字,变量定义除了规定了变量的类型和名字,还申请存储空间,也可能为变量赋一个初值。
    变量只能定义一次,但是可以被多次声明。如果定义多次,编译器将报错。
    如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示地初始化:
extern int i // 声明i而非定义iint j  //声明并定义j
    任何包含了显示初始化的声明即成为了定义。我们能给由extern关键字标记的变量赋一个初始值,但这么做也就抵消了extern的作用。extern语句如果包含了初始值就不再是声明,而变成了定义:
extern   double  pi = 3.1415;  // 定义
    在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。 

标识符:

C++标识符由字母、数字和下划线组成,其中必须以字母或下划线开头。标识符的长度没有限制,


标识符命名要求:
1)标识符对大小写敏感,如果是相同的单词,其中大小写不同,也是不同的标识符。
2)用户自己定义的标识符不能连续出现两个下划线,也不能下划线紧连大写字母开头。

3)定义在函数体外的标识符不能以下划线开头。


变量命名规范:
1)标识符要体现实际含义。
2)变量名一般要用小写字母。
3)用户自定义的类名一般以大写字母开头。
4)如果标识符由多个单词组成,则单词间应有明显的区分。

C++语言里保留了一些标识符,我们称之为关键字。这些关键字有着特定的含义,不能用作变量,图中列出了部分关键字:

             

名字的作用域:

作用域:我的理解是变量,函数或者其他产生作用的范围,例如定义在main函数的变量,它的作用域就是main的函数体,离开了main函数,变量将不可用!


作用域的种类:

1)块作用域:只在一段区间有作用,例如上面定义在mian函数的变量,函数体就是其作用域,是一个块作用域。

2)全局作用域:在程序的整个范围内都可用。


嵌套作用域:

1)内层作用域:被包含(被嵌套)的作用域。

2)外层作用域:包含着别的作用域的作用域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值