zoukankan      html  css  js  c++  java
  • C++ : 变量

                                   变量

    1、左值与右值

    左值(lvalue发音:ell-value):左值可以出现在赋值语句的左边或者右边。

    右值(rvalue发音:are-value):右值只能出现在赋值语句的右边,不能出现在赋值语句的左边。

     

    变量时左值,因此可以出现在赋值语句的左边。数字字面值是右值,因此不能被赋值。

    C++程序员一般称变量为“变量”或者“对象”(object)。

    2、对象:在内存当中具有类型的区域。

    3、变量名:变量的标识符,可以由字母,数字和下划线组成,但必须以字母或下划线开头,并且区分大小写字母。如:

    int somename, someName, SomeName, SOMENAME;

    虽然变量名没有长度限制,但是不应该太长,影响阅读。

    4、一些关键字和操作符的替代名不能作为标识符!

    5、变量名的命名习惯:

    1)变量名一般用小写字母。如:index

    2)标识符应使用能帮助记忆的名字,能够提示在程序中的用法的名字,如:on_loansalary

    3)包含多个词的标识符书写时在每一个词之间添加一个下划线,或者每个内嵌的词的第一个字母都大写。如student_loan或者studentLoan

    4)命名习惯最重要是保持一致。

    6、定义对象: 以类型说明符开始,后面紧跟着以逗号分开的一个或者多个说明符列表。分号结束定义。

    类型决定了分配给变量的储存空间的大小和可以在其上执行的操作,同时,多个变量可以定义在同一条语句中。如:double salarywage

    7、初始化: 变量定义指定了变量的类型和标识符,也可以为对象提供初始值,定义时指定了初始值的对象称为已初始化。

    C++支持两种初始化变量的形式: 复制初始化和直接初始化

    int ival1024); 直接初始化

    int ival = 1024; 复制初始化

    注意:初始化不是赋值!初始化指创建变量并给它赋初始值,而赋值测试擦除对象的当前值并用新值代替。

    8、初始化内置类型的对象只有一种方法:提供一个值,并复制到新的对象中。此时的复制初始化和直接初始化没差别。

    对于类类型来说,有些初始化仅能用直接初始化完成:

    string为例,1) 作为字符串字面值的副本:

    Std::string titleA = "C++ Primer, 4th Ed.";

    Std::string titleB ("C++ Primer, 4th Ed");

    2) 通过一个计数器和一个字符初始化string对象。

    如:std::string all_nines(10, '9'); 等价于  all_nines = "9999999999" ;

    9、初始化多个变量:当一个定义中定义了两个以上变量的时候,每个变量都可能有自己的初始化。(已初始化变量和未初始化变量可以在同一个定义中定义)

    如: double salary = 9999.99 

     Wagesalary +0.01); (两种形式的初始化文法混用)

     int  interval

    Month = 8, day =7, year = 1999;(初始化和未初始化在同一定义)

     

    注意:

    1、内置类型变量的初始化: 未初始化的变量作用于任何其他用途都是没有定义的,除了用作赋值操作符的左操作数。

    2、建议每个内置类型的对象都要初始化,这样做不总是必须的,但是最容易和安全的。 如果使用未初始化的变量会引起程序崩溃或者错误的计算结果。

    3、类类型变量的初始化: 注意它的两种初始化方法。 另外,如果定义某个类的变量时没有提供初始化,它会通过一个默认构造函数来实现定义。

     

    10、声明和定义:

    定义: 用于为变量分配存储空间,还可以为变量指定初始值。一个程序中,变量有且只有一个定义。

    声明:用于向程序表明变量的类型和名字。(在定义时,其实也有声明变量的类型和名字)  可以通过extern 关键字声明变量名而不定义它。Extern 声明不是定义,也不分配储存空间。 程序中变量可以声明多次,但是定义只有一次。

    注意:

    如果声明有初始化式,那么就被当做是定义,即使有extern。如:

    extern double pi = 3.1415 ; (定义)

    当已初始化的extern声明被当作定义后,该变量任何随后定义都是错误的。如: extern double pi = 3 .1415 ; (定义)

         extern double pi ;   (声明,不出错)

       double  pi ; (重定义,出错)

       extern double pi =3.1415 ; (重定义,出错)

    -------------------------------------------------------------------------------------------------------------------------------------------------------------

    在变量这一章节中,有许多细节需要注意,就像上文中的一些红色字体。变量的命名规范也是编程规范的一部分,所以需要特别注意。第二是,对于类类型的初始化还是有一点没弄得很明白,就是两种初始化方法的使用情况,也许需要在学习类之后再重新理解一下今天的内容!同时,还学习了直接初始化和复制初始化。第三点是学习到了声明和定义的区别,声明没有分配储存空间,声明只是告诉程序变量在这里出现。定义为变量分配了存储空间,同时也是给变量赋上初始值。其实个人觉得定义时也包括了声明!

    (努力学习第二天!)

  • 相关阅读:
    繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包
    Linux常用的系统监控shell脚本
    linux系统CPU,内存,磁盘,网络流量监控脚本
    linux系统巡检脚本shell实例
    主流脚本语言的比较和选择
    老男孩python第六期
    如何从 0 开始学 ruby on rails (漫步版)
    C#数学运算表达式解释器
    算法导论 第9章 中位数和顺序统计学(线性时间选择算法)
    ruby语言仅仅是昙花一现
  • 原文地址:https://www.cnblogs.com/ss815367696/p/2583895.html
Copyright © 2011-2022 走看看