zoukankan      html  css  js  c++  java
  • C++ 点滴(一)

    1.变量初始化的顺序:申明时初始化--->初始化列表初始化---->构造函数初始化。后一项的赋值会覆盖前一项的赋值。

    2.运算符重载时,提示“表达式必须包含类类型”,此时一般需要将this.修改为this->即可。

    3.bool类型的值在使用std::cout输出到控制台时,true为1,false为0。

    4.C++控制结构语句可以分为3类:

      1) 顺序结构,顺序执行的语句

      2)选择结构,一般就是if-else、switch-case-break两种语句

      3)循环结构,while、do while、for这三种语句

    5.算术数据类型的选择原则:

      1)如果明确数值不可能为负数,则使用无符号类型;

      2)浮点类型尽量使用double;因为float精度太小,而double float精度太大没有必要;

      3)尽量使用unsigned char或者signed char,而避免使用char,char会因为平台不同导致所表达的值不同,会对计算结果带来影响;

      4)使用int来执行整数运算。short太小可能会造成计算溢出等情况,而long和int一般尺寸相同。如果一个数无法用int表示,则尽量使用long int来表示而不是long;

      5)尽量避免使用bool或者char来执行算术运算。

    6.可以通过type_info来获取类型信息,用法如下:

      

     7.形如 int a={1},这类初始化方式称为 列表初始化,当对内置类型列表初始化时要求初始化不能有信息损失,比如将long double传递给int时,将丢失小数信息,此时编译器会提示错误:“错误 C2397 从“long double”转换到“int”需要收缩转换”。

    8.内置类型变量(比如int,double这些)在函数体外若未显示初始化,则将被初始化为0;在函数体内若未初始化,则为未定义,如果未定义并使用,程序将会异常,其他的类型不分函数体内外,全部由类自身来决定未显示初始化时的对象状态。

    9.C++ 支持分离式编译,为了支持分离式编译,C++可以将变量的申明和定义分开,变量的申明使用extern来修饰,并且不能显示初始化,如果显示初始化,则变为变量定义;变量的申明可以多处申明,但是定义只能有一份。

    10.作用域包含全局作用域和块作用域,全局作用域类的变量整个程序范围内均可使用,块作用域内的变量只有在块类里才能使用。

    11.C++中嵌套作用域可以重新定义外作用域同名的局部变量名称,但是C#不行,C#编译器会报如下错误:“错误 CS0136 无法在此范围中声明名为“i”的局部变量或参数,因为该名称在封闭局部范围中用于定义局部变量或参数”。具体原因可参见“https://www.codeproject.com/Articles/14398/Chapter-3-Basic-Concepts-C-Programming-Language-Th” 3.3节.

  • 相关阅读:
    host配置
    查看浏览器内核以及版本信息
    优化你的数据库索引
    密集索引和稀疏索引的区别
    Interview
    hadoop启动后,jps命令后发现nodename启动失败,检查日志报错:FSNamesystem initialization failed
    hadoop学习之hadoop完全分布式集群安装
    VMWare虚拟机下为Ubuntu 配置静态IP(NAT方式)ping通主机
    虚拟机突然无法使用NAT模式上网
    hadoop-0.20.2 & hbase-0.90.1 集群启动错误“org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientP
  • 原文地址:https://www.cnblogs.com/chyshx/p/14265438.html
Copyright © 2011-2022 走看看