码迷,mamicode.com
首页 > 编程语言 > 详细

[C++ primer]第2章 变量和基本类型

时间:2015-09-29 06:31:21      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

*谨做个人笔记,本系列不建议初学者以系统性学习为目的的使用

 

C++ 11:

定义了数据类型long long, 至少和一个long一样大,对32位机器而言,一般是64位 即8字节

 

算术类型

字符型不同于其他基本类型,被分成三种,char,signed char以及unsigned char

但是表现形式只有两种:带符号或者无符号的。类型char会变现为两种之一,具体哪种取决与编译器

所以在算术表达式中不建议使用char,因为不同编译器的结果不同

 

类型转换

浮点赋整型,只保留整数部分,不是四舍五入

赋给带符号类型超出他能表示的范围时,结果是未定义的

赋给无符号类型超出他能表示的范围时,结果是这个值对此无符号类型所能表示数值总数(如unsigned char表示0-255,总数为256)取模后的余数,此原理也适用于将一个负数赋给一个无符号数。

//如下所示,死循环

for (unsigned i = 10; i >= 0; --i)

...

 

字面值常量

形如42这样的数被称为字面值常量

十进制的字面值是有符号数,是int, long, long long中能容纳他的最小的那个

八进制或者十六进制的字面值,是int, unsigned int, long, unsigned long, long long, unsigned long long中能容纳他最小的那个,所以不一定带符号

-42的字面值,负号并不在字面值之内,负号是对字面值进行取负

默认浮点类型的字面值是一个double

 

也可以指定字面值的类型:

L‘a‘      //宽字符型字面值,wchar_t

u8“HI”   //UTF-8字符串字面值

3.1415L  //long double

细则见P37

 

变量

当对象在创建时获得了一个特定的值,称之为初始化

=可以用于初始化,当然也可以用于后续赋值。初始化和赋值完全不同

初始化含义是创建变量时赋予一个初始值;赋值含义是把对象当前值擦除,用一个新值来替代。

 

C++ 11:列表初始化
用花括号来初始化变量。这种初始化方式更为严格,如果使用列表初始化时初始值存在信息丢失的风险,编译器将报错。 long double ld = 3.141592653 int a{ld}, b = {ld}; //报错 int c(ld), d = ld; //正确,但丢失部分信息

[C++ primer]第2章 变量和基本类型

标签:

原文地址:http://www.cnblogs.com/jinkewulei/p/4845380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!