ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

"C++ Primer 读书笔记" 第二章 变量与基本类型

2020-05-25 15:05:59  阅读:228  来源: 互联网

标签:初始化 const 定义 读书笔记 作用域 C++ int Primer 变量


1.1.2 初识IO对象

表达式

cout << "hello" << endl;

中, cout为标准输入输出库<iostream>中的ostream类的一个对象。此处的操作数,操作符,操纵符等概念要明白。endl操纵符传给cout对象,使得设备缓冲区被刷新。

2. 变量和基本类型 - 2.3变量

  了解C++中的基本内置类型(bool, int, float, double, char, long int等)及其存储空间;

  整型与浮点型各自包含了哪些算术类型。

  通常建议int32计算整型,double计算浮点运算。

  只有内置类型存在字面值常量,如 true, 42, 3.1415926, "hello", 'x' .

  以0开头的字面值常量表示8进制,0x则是16进制。以L结尾的表示long类型,U表示unsigned类型。

  字面值为右值,不能出现在赋值语句的左边。

  初始化、赋值、声明、定义的概念:

    变量的定义:(必须)要有变量的类型和标识符,(可选)同时可以指定初始值;定义的同时为变量分配内存,如果没有指定初始值,将由系统进行初始化。

    变量的声明:定义是声明的一种,还有另一种extern声明,不分配存储空间,只是说明变量定义在程序的其他地方。

    注意:

  • 函数内部定义的变量没有初始化值,函数外部定义的变量才有初始化值;
  • 程序中变量可以声明多次,但只可以定义一次;  
  • extern声明在同时初始化时也是定义,但只能在函数外部才能如此;
  • 多个文件共用一个变量,则有且仅有一个文件包含变量的定义,其他文件包含该变量的声明。

   变量的作用域:全局作用域(函数外部定义的变量)、局部作用域(函数内部定义的)与语句作用域(如for语句中定义的)。不同作用范围的作用域可嵌套。(更复杂的还有类的作用域和命名空间作用域。)

  2.4 const限定符

  const对象用于表示常数:定义之后不能被修改;在定义时就需要被初始化。

  如果非const变量在全局作用域中被定义,则在整个程序中都可以访问(默认为extern);

  但const变量必须加extern关键字时,才能在整个程序中访问。否则只能在当前文件中被访问。

  2.5 引用

  无非就是某个对象的另一个名字!完全是相同的内存。

  const 引用:可以读取但不能修改。

  因此我们使用const引用作函数形参:

  引用不必将实参再拷贝一次,节省了内存空间;而加const则保护了实参的值不被修改(如果要同时修改则不加const关键字)。需要注意的是,const int &a; 是指向const变量的引用(const int) &a; 而不是说这个引用本身是const的。在Python中,参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个不可变对象(数字、字符或元组)的引用,就不能直接修改原始对象--相当于通过‘值传递’来传递对象。如果函数收到的是一个可变对象(字典、列表)的引用,就能修改对象的原始值--相当于‘传引用’来传递对象。

 

  2.6 typedef 用于定义类型的同义词(通常是便于程序员使用)

    struct   Student   
    {   
    int   a;   
    }stu1;//stu1是一个变量  

       typedef   struct   Student2   
    {   
    int   a;   
    }stu2, *stu_p;//stu2是一个结构体类型 = struct Student     
    // *stu_p 是指向结构体的指针

  枚举

  enum modes {open, close, disabled};

  modes m = open;

  关于类类型

  花括号后要加分号 ; ;

  类本身定义了其作用域;

  注意,所有数据成员的初始化应该在构造函数中实现;

  访问标号 public表示程序的任何部分可以访问,private表示只有在类内部的代码可以访问,

  操作private内部的数据应通过成员;

  使用struct关键字定义类:class关键字定义的类的成员缺省为private,struct则是public;

  头文件中只声明不定义,除了类和const对象:

  在头文件中我们不定义变量,如 int a; 主要是用来定义类;

  另外,const变量默认是定义该变量的文件的局部变量,因此在头文件中定义并不会导致重复定义;而其他包含了这个.h文件的源文件都有相同的const变量;

  const变量如果用常量表达式进行初始化,如 const float a  = 1 + 2.1415926;

  const float b = a+1;

  1. 在编译阶段就能够计算出结果

  2. 由于用常量表达式(通常是字面值)代替了const变量的使用,因此不占用任何存储空间(?变量、const变量、函数内部变量、字面值都保存在内存哪些位置?)

  预处理器:利用预处理器变量(条件编译宏)避免多重包含

  C++是一种静态类型语言,所有函数和变量必须在访问前声明或定义;

 

 

  

  

标签:初始化,const,定义,读书笔记,作用域,C++,int,Primer,变量
来源: https://www.cnblogs.com/LiaoQian1996/p/12890324.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有