zoukankan      html  css  js  c++  java
  • c++第五天:默认初始化

    1、算数类型。(整型和浮点型)

    类型决定了数据所占的比特数以及该如何解释这些比特的内容。

    练习2.1。。。 各种类型在计算机中所占的比特数不同,解释方法不同。有符号要花费一个比特存储符号,最大正值要比无符号的小。

    float和double就在计算机内所占比特数量而言通常分别为32位和64位,就解释后的精度而言分别有7个和16个有效位,ps:通常,执行浮点数运算选用double,整数运算选int 或者 long long

    练习2.2 全部无符号的double?

    2、类型转换。关于-1%256=255,一个负数B对一个正数A取模,在B上加A,直到B变成正数,然后再对A取模。

    参考:http://bbs.csdn.net/topics/390837091

    练习2.3 32 42949672** 32 -32 0 0

    练习2.4

    D:lab_>prog1
    32
    4294967264
    32
    -32
    0
    0

    3、字面常量

    练习 2.6 十进制和八进制的区别。 09作为八进制是不合法的,无法编译。

    练习 2.7

    #include<iostream>
    
    int main()
    {
        // std::cout << "2115" << '
    ';
        std::cout << "2	115" << '
    ';
        return 0;
    }

    4、变量定义

    比较关键的地方:变量的概念。 区分初始化与赋值。

    值得关注的地方: 列表初始化。(用花括号来初始化变量, 若初始值存在丢失信息的风险, 则编译器将报错)

    以及: 未被显式初始化的情况

    ——> 默认初始化:内置类型变量分两重情况(由位置决定)分别为 0 或 未定义,类由自己决定。

    练习 2.9

    #include<iostream>
    
    int main()
    {
        std::cin >> int input_value;      // 不可编译。
        int i = { 3.14 };                 // 可编译。编译器不报warning。精度丢失。 ps:相当于 i = 3.14?
        int i{3.14}                       // 可编译。编译器报warning。精度丢失。
        double salary = wage = 9999.99;   // 不可编译。
        int i = 3.14 ;                    // 可编译。编译器不报warning。精度丢失。
        return 0;
    }

    练习 2.10

    #include<iostream>
    
    std::string global_str;     // 类的默认初始化由自己决定:空字符串
    int global_int;                // 内置类型的初始化由位置决定: 0
    
    int main()
    {
        int local_int;            //内置类型的初始化由位置决定: 不被初始化, 尝试输出是4201131
        std::string local_str;     // 类的默认初始化由自己决定:空字符串
    }

     为什么不是“但凡没有初始化的变量都进行默认初始化”呢?

  • 相关阅读:
    面试题 16.07. 最大数值
    461. 汉明距离
    1290. 二进制链表转整数
    1486. 数组异或操作
    1480. 一维数组的动态和
    面试题 17.04. 消失的数字
    626. 换座位
    125. 验证回文串
    530. 二叉搜索树的最小绝对差
    ASP.NET页面之间传递值的几种方式
  • 原文地址:https://www.cnblogs.com/xkxf/p/6277028.html
Copyright © 2011-2022 走看看