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 << "2\115" << '\n';
std::cout << "2\t\115" << '\n';
return ;
}

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 ;
}

练习 2.10

#include<iostream>

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

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

c++第五天:默认初始化的更多相关文章

  1. 默认初始化&拷贝初始化&直接初始化&值初始化&列表初始化

    一.各种初始化的形式 /* 定义变量形式一:不指定初始值 */ int a; // 默认初始化 /* 定义变量形式二:指定初始值 */ int b = 1; // 拷贝初始化 int b(1); // ...

  2. java变量和作用域以及成员变量的默认初始化

    Java中的变量有成员变量和局部变量,定义在类中方法之外的变量成为成员变量或者成员字段(域),表示一个类所具有的属性,定义为类的成员变量的变量的作用于是整个类,该变量在定义的时候不需要初始化,在使用前 ...

  3. mysql使用模板解决旧数据处理,默认初始化数据的通用方法!

    一 业务介绍 先来看看我这得大致业务需求,这次业务比较简单: 即从现在开始,每次new一个爷爷都需要默认初始化给这个爷爷三个儿子(子表,爷爷id去关联),并在初始化每个儿子的同时再给每个儿子初始化若干 ...

  4. C++:默认初始化

    一.什么是默认初始化 默认初始化,顾名思义,即为在定义变量时如果没有为其指定初始化值,则该变量会被C++编译器赋予默认的值.而变量被赋予的默认值到底是什么,则取决于变量的数据类型和变量的定义位置. 二 ...

  5. 探究c++默认初始化

    按照c++ primer 5th第40页的描述,如果定义变量时没有指定初值,则变量被默认初始化,此时变量被赋予了“默认值”. 根据变量定义的位置,分为两种情况: 1.定义于任何函数体之外的变量被初始化 ...

  6. C++ 值初始化和默认初始化

    对于初始化的问题,我之前一直傻傻分不清.有关初始化以及赋值的区别也是一问题,这次回过头来看,配合<<CSAPP>>的内容,对初始化有了一些新的认识. 声明: 在环境/上下文中指 ...

  7. c++全局变量,局部变量,内存布局,默认初始化

    全局变量 定义在所有函数之外的变量,main函数之内的变量也是局部变量,Globle variable  未显示初始化时执行默认初始化 局部变量 定义在函数之内的变量,Local variable 未 ...

  8. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

    一.nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布  ,即均值$\mu=0$,方差$\sigma=1$的正态分布. 论据1——查看 ...

  9. Win10 QQ五笔默认中文,InputMode默认中文

    Win10系统安装了QQ五笔后,InputMode默认英文,必须用鼠标点或者按 Ctrl+空格才能转换为中文.非常不方便. 即使将微软拼音默认为中文也不管用,解决方法如下: 设置后,无论你打开运行.记 ...

随机推荐

  1. SPOJ MKTHNUM & POJ 2104 - K-th Number - [主席树模板题]

    题目链接:http://poj.org/problem?id=2104 Description You are working for Macrohard company in data struct ...

  2. python3学习笔记(2)_list-tuple

    # !/usr/bin/env python3 # -*- coding:utf-8 -*_ #list 和 tuple #list 是有序集合,可以用索引(下标)访问lsit中的每一个元素 #最后一 ...

  3. mount --bind 的妙用

      在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件.而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意 ...

  4. linux中使用arcpy

    切换到对应目录   即下图的  server安装路径  /home/arcgis/arcgis/server/tools 然后输入 ./python  (这一步要注意    python这个命令    ...

  5. LINUX常用命令大全归纳篇

    su su命令是最基本的命令之一,常用于不同用户间切换. 例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后就可 ...

  6. Hadoop的那些事儿(转)

    原文:http://www.searchtb.com/tag/mapreduce       在说Hadoop之前,作为一个铁杆粉丝先粉一下Google.Google的伟大之处不仅在于它建立了一个强悍 ...

  7. JS模块化编程(五)---按照AMD规范扩展全局对象

    采用AMD规范 具体来说,就是模块必须采用特定的define()函数来定义;如果一个模块不依赖其他模块,那么可以直接定义在define()函数中; 以扩展全局对象Date为例: define(func ...

  8. grunt学习一

    grunt是前端自动化工具之一.下面是是grunt的简单小示例: 在使用grunt,确保安装nodejs,如果不清楚,可以百度找相关教程,这个教程已经烂大街了. 1.打开cmd,以管理员的身份.(或者 ...

  9. android发短信,打电话

    //1.进入系统短信列表界面 Intent intent = newIntent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_DEF ...

  10. XMind思维导图自定义图标/图片