zoukankan      html  css  js  c++  java
  • C++ Primer 读书笔记

    定义与声明

    定义负责创建实体,声明(extern)使名字为程序所知,变量可以声明多次。

    int i; //声明+定义
    extern int i ;    //声明
    entern int i=10//定义

    引用必须初始化,初始化时,程序将引用和初始值绑定在一起,可以理解为变量起来一个别名(并非对象),因此不能定义引用的引用。

    int ival = 1024;
    int &refval = ival;
    int &refval2;     //error

    指针

    指针与其指向的变量的类型要相同,初始化定义如下(初始化时注意变量前的&),访问指针所指向的对象时要使用解引用符(*),指针是一个对象

    int ival = 1024int *q ;              //q是指向int型对象的指针
    int *p =  &ival;    //p存放的是ival的地址(p是ival的指针)   
    cout << *p << endl;

    viod * 是一个特殊的指针类型,可以存放任意对象的地址,但是我们不知道他存放时什么类型的对象,所以能做的事情也比较有限(同别的指针比较,作为输入输出,赋值给另一个void*指针),不能直接操作void*所指向的变量。

    int ival = 1024;
    int *pi = &ival ;
    int **pp = &pi;     //pp指向pi指针的指针
    int *&rp = p ;    //rp是指针pi的引用  (int* &p = p )

    思考:给定指针p,判断他是否指向一个合法对象。 

    -----------------------------采用try,catch结构,把if(p)放在try块中。

    const限定符

    const变量初始化时必须赋值,并且赋值后不能更改。

    const可以被引用,但是引用必须同样是const,且不能修改他的值。(对const的引用被称为”常量引用”)<------------区分------------>   初始化const引用时,可以使用任意表达式,只要表达式可以转换成引用的类型。

    默认情况下,const对象仅在文件内部有效,若想在多个文件共享const对象,需要在变量定义之前添加extern关键词

    还有一种const变量,他的初始值不是常量表达式并且需要在文件之间共享(定义一个const在多文件使用)不管声明还是定义都需要添加extern,头文件的extern作用是指明变量bufsize并非本文件独有,他定义在别处。

    //file1.cc 定义并且初始化
    extern const int bufsize = func();
    //file1.h头文件
    extern const int bufsize ;
  • 相关阅读:
    (C#) 设定时间格式
    (WPF) MVVM: 动态添加控件及绑定。
    (WPF) MVVM: DataGrid Binding
    (WPF) MVVM: ComboBox Binding, XML 序列化
    (C#) 判断相等?
    ASP.NET MVC过滤器中权限过滤器ValidateAntiForgeryToken的用法(Post-Only)
    根据2个经纬度点,计算这2个经纬度点之间的距离
    ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)
    nopcommerce 二次开发
    SQL效率低下原因主要有
  • 原文地址:https://www.cnblogs.com/codinghard/p/9548993.html
Copyright © 2011-2022 走看看