C/C++: C++变量和基本类型
- 当明确知晓数值不可能为负的时候,应该选择无符号类型。
- 使用int执行整数运算的时候,在实际应用中,short常常显得太小而long一般和int有一样的尺寸,如果数值超过了int,那么就要用long long(ACM经常用)。
- 在算术表达的时候不要使用char或者bool,char在一些机器上是有符号的,而在另一些机器上又是无符号的。
- 执行浮点运算的时候应该选用double而不是float,双精度运算有时候会比单精度要快很多。
2. 对于有符号和无符号整形转换的规则
- 当我们赋给带符号类型一个超出它表示范围的值的时候,结果是未定义的。(这是5e上的原话,但是事实上学了CSAPP以后这个值我们还是可以预计的)。
- 当我们赋给无符号类型一个超出它表达范围的值的时候,结果是初始值对无符号类型表示数值的总数取模后的余数。
3. 字面值常量
- 严格来说,尽管整形字面值可以储存在带符号数据类型中,但严格来说,十进制字面值不会是负数,如果我们使用了一个形如-42的负十进制的字面值,那个负号并不在字面值之内,它的作用仅仅是对字面值取负值而已。
- 字符串一行写不了可以下一行再""开始写。
- 字符和字符串字面值
uunicode16char16_tUunicode32char32_tL宽字符wchar_tu8UTF-8(仅用于字符串字面常量)ch - 整形字面值
u or Uunsignedl or L(最好用L)longll or LLlong long
|
f 或者F
|
float
|
|
l 或者L
|
dong double
|
- 对象通常指一块能存储数据并且具有某种类型的内存空间。
- 如果使用列表初始化({ pram})来初始化变量,如果列表初始化存在丢失信息的风险,那么编译器就会报错,但是如果使用平常的( )或者=来初始化,那么就不会报错(比如从“__int64”转换到“int”需要收缩转换 ),只会警告。
- 要注意,整形一定不能给指针赋值,即使他本身的值为“0”,void*指针可以指向任意类型的内存,但不存在任何类型信息
- 复合类型包括指针和引用,也包括用户自定义类型,注意引用不是对象。但是指针是对象,所以存在对指针的引用,不存在对引用的指针。
FormatFile test, *test2;
FormatFile *&r = test2;
r = &test;
- 要注意希望推断出来的auto类型是一个顶层const,那么就要明确指出const(要注意的是,auto只会忽略顶层const,如果一个变量是底层const,那么他就不会被忽略)。
decltype(p) k = p;//如果p是int *const,则k也为int *const
6. 其他
1. C++的赋值和初始化并不是完全等同的,不能混为一谈。
int j;//声明了而且定义了(默认初始化)
extern int i;//声明但是不定义
int i;
int *p = &i;
int *&r = p;
注意指向引用的指针的写法,一定是解指针运算符在前面,然后引用运算符在后面。
C/C++: C++变量和基本类型的更多相关文章
- 再读《C++ Primer》——变量和基本类型
刚上大学那时,几个室友一块买了本<C++ Primer>第4版,看了一遍后就没怎么碰了,偶尔拿出来翻翻,当作工具书使用.后来知道有第5版了,一直觉得内容差不多吧.直到最近,再读其中的一些内 ...
- C和指针 第三章 变量的储存类型 auto、static、register以及static关键词
变量的储存类型决定标量何时创建,何时销毁以及他的值保持多久.有三个地方可以储存变量: 普通内存static 运行时堆栈auto 硬件寄存器register 变量的缺省储存类型取决于它的声明位置: 静态 ...
- C++ Primer 笔记(2)第二章 变量与基本类型
第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常 ...
- C++ Primer : 第二章:变量和基本类型(1)
变量和基本类型之第一篇:基本内置类型和变量 一. (1) C++定义了一套包括算数类型和空类型,这些类型有:布尔类型bool,字符类型char,宽字符类型wchar_t,Unicode字符char16 ...
- C++ Primer 读书笔记 第2章 变量和基本类型
C++ Primer 第二章 变量和基本类型 2.1 基本内置类型 C++定义了一组表示整数.浮点数.单个字符和布尔值的算术类型(arithmetic type),此外还定义了Void类型. 算术类型 ...
- C++入门笔记(二)变量和基本类型
变量和基本类型 一.基本内置类型 1.除去布尔类型和扩展的字符型外,其他整型可以分为带符号的和无符号的. 2.与其他整型不同,字符型被分为了三种:char.signed char 和 unsigned ...
- (C/C++学习笔记) 九. 变量的存储类型
九. 变量的存储类型 ● 变量的存储类型(见附页) ● 注释 ①对于自动变量,它属于动态存储方式. 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式.由此看来,一个 ...
- C/C++基础----变量和基本类型
变量和基本类型 不同平台下基本类型的字节数 类型 16位平台 32位平台 64位平台 char 1 1 1 short 2 2 2 int 2 4 4 long 4 4 8 long long / 8 ...
- C++ 学习笔记 变量和基本类型(一)
C++ 学习笔记 一.变量和基本类型概述 类型是所有程序的基础.类型告诉我们数据代表什么意思以及可以对数据执行哪些操作. c++基本类型: 字符型 整型 浮点型 c++ 还提供了可用于自定义数据类型的 ...
- Chapter2(变量和基础类型)--C++Prime笔记
数据类型选择的准则: ①当明确知晓数值不可能为负时,选用无符号类型. ②使用int执行整数运算.在实际应用中,short常常显得太小而long一般和int有一样的尺寸.如果运算范围超过int的表示范围 ...
随机推荐
- 《UNIX环境高级编程》笔记——3.文件IO
一.引言 说明几个I/O函数:open.read.write.lseek和close,这些函数都是不带缓冲(不带缓冲,只调用内核的一个系统调用),这些函数不输入ISO C,是POSIX的一部分: 多进 ...
- [信安Presentation]一种基于GPU并行计算的MD5密码解密方法
-------------------paper--------------------- 一种基于GPU并行计算的MD5密码解密方法 0.abstract1.md5算法概述2.md5安全性分析3.基 ...
- winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除
在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...
- Elasticsearch-5.0.0移植到ubuntu16.04
旧环境: windows10 elasticsearch-5.0.0(含elasticsearch-head插件) 新环境: ubuntu16.04 由于环境换成了ubuntu,之前windows10 ...
- javascript 数字格式化
对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿25.9878来说,我们可能会希望它能保留两位小数来说出,即结果为25.99,或者对于0.34 ...
- Apache Torque入门学习
Introduction Apache Torque is an object-relational mapper for java. In other words, Torque lets you ...
- Linux各个目录的作用及内容
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于Windows操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件. 2)/bin /bin 目录又称为二 ...
- 在Node.js使用mysql模块时遇到的坑
之前写了个小程序Node News,用到了MySQL数据库,在本地测试均没神马问题.放上服务器运行一段时间后,偶然发现打开页面的时候页面一直处于等待状态,直到Nginx返回超时错误.于是上服务器检查了 ...
- 用RMAN备份EBS数据库的脚本
rman_bak.sh rman target / nocatalog log=/d01/rmanbak/bak_`date +%m%d%H%M`.log<< EOF run { c ...
- java从基础知识(九)I/O
java中的流可以从不同的角度进行分类 按流的方向:输入流.输出流(注意这里的输入(read).输出是相对于程序而言的(writer),个人认为从读.写角度理解更为直观) 按处理数据单位:字节流.字符 ...