C++学习笔记之数据类型
一、变量名
几条简单的C++命名规则:
- 在名称中只能使用字母,数字和下划线
- 名称的第一个字符不能是数字
- 区分大小写
- 不能将C++关键字用作名称
- 以两个下划线和大写字母打头的名称被保留给实现(编译器及其使用资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
- C++对名称长度没有限制
二、数据类型
计算机内存的最基本单元是位(bit)。字节(byte)通常指的是8位内存单元,可以表示的范围0-255或者-128到127。
(1)整型
- short至少16位(大多数系统16位,-32768到+32767或者0-65535)
- int至少与short一样长(win7中32位)
- long至少32位,且至少与int一样长
- long long 至少64位,且至少与long一样长
对类型名或者变量名使用sizeof运算符,可以得到类型的字节数。
无符号类型关键字:unsigned xx
char类型也是一种整型,专为存储字符而设置的,它足够长,能够表示目标计算机系统中所有的基本符号——所有的字母、数字、标点符号,很多系统支持的字符都不超过128个,因此用一个字节就够了。
bool类型true or false
三、const限定符
const 创建常量时必须在声明时就初始化
四、浮点数
区别于整型,能够表示小数。书写方式:
- 12.34
- 939001.12
- 0.000032
- 8.0(即使小数部分为0,小数点也确保该数字以浮点格式表示,而不是整数格式)
- 2.52e+8
- 8.33E-4
浮点类型:
- float(通常32位)
- double(通常64位)
- long double
浮点常量:像8.24和2.4E8这样的浮点常量都属于double类型,如果希望常量为float类型,请使用f或者F后缀,对于long double类型使用l或者L后缀(由于l看起来像1,使用L是更好的选择),如:
1.234F
2.4E20F
2.2L
五、类型转换
只允许由较窄的类型向较宽的的类型升级(类型提升),不可由宽到窄降低。如将浮点值赋给整型很可能导致两个问题:整型会将数字截短(除掉小数部分),另一方面 float对于int变量来说可能太大了。
在此类潜在的问题将会引起不可预料的错误。
当同一个表达式中出现两种不同的的算术类型时,C++将执行两种自动转换:
- 一些类型再出现时便会自动转换
- 有些类型在与其他类型同时出现在表达式中时将被转换
除了自动转换,另一个重要的方式是强制类型转换,如将存储在变量thorn中的int值转换为long类型:
- (long) thorn 或者thorn (long) (C语言风格)
- static_cast<long> (thorn)
强制类型转换不会修改thorn变量本身,而是创建一个新的、指定类型的值。
C++学习笔记之数据类型的更多相关文章
- es6学习笔记--新数据类型Symbol
学习了es6语法的symbol类型,整理笔记,闲时复习. Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为 ...
- javascript深入浅出——学习笔记(六种数据类型和隐式转换)
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容
- Rust学习笔记一 数据类型
写在前面 我也不是什么特别厉害的大牛,学历也很低,只是对一些新语言比较感兴趣,接触过的语言不算多也不算少,大部分也都浅尝辄止,所以理解上可能会有一些偏差. 自学了Java.Kotlin.Python. ...
- MySQL学习笔记之数据类型
数据类型在所有的数据库使用当中,都是避免不了的部分.以前每次写SQL语句,对于定义成哪种数据类型总是迷迷糊糊,今天就来彻底弄清.以下介绍仅针对MySQL 5.5以上版本. 一.字符串类型 1.char ...
- Java学习笔记三——数据类型
前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...
- Redis学习笔记1-Redis数据类型
Redis数据类型 Redis支持5种数据类型,它们描述如下: Strings - 字符串 字符串是 Redis 最基本的数据类型.Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串 ...
- python学习笔记二 数据类型(基础篇)
Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上 ...
- CUBRID学习笔记 26 数据类型3cubrid教程
接上面的集合 集合之 set 每个集合元素是不同的值, 但是类型只能是一种.也可以有其他表的记录 如下 CREATE TABLE set_tbl ( col_1 set(CHAR(1))); INSE ...
- C#学习笔记5:数据类型与进制转换
1.C#: 8种整形类型.2种用于科学计算的二进制浮点类型.1种用于金融计算的十进制浮点类型. 2.Decimal是一种特殊的浮点类型,能够存储大数字而无表示错误. 常用于货币计算.在表示的所有十进制 ...
随机推荐
- Android开发之旅:环境搭建及HelloWorld
引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...
- opencv3.0 在 android 上的使用
下载 OpenCV-3.0.0-android-sdk-1.zip 打开 intellj,新建立一个 android 工程后选择工程属性,导入模块(Import module from externa ...
- javascript --- jQuery --- Deferred对象
javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...
- git初步使用
git初步使用 主要目的:使用代码控制工具,练习使用git 1.创建新项目 网址如下: https://github.com/kellyseeme?tab=repositories 注意每个人使用的名 ...
- MySQL安装(图文详解)
下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面 my ...
- python日志模块logging
python日志模块logging 1. 基础用法 python提供了一个标准的日志接口,就是logging模块.日志级别有DEBUG.INFO.WARNING.ERROR.CRITICAL五种( ...
- iframe和frame的区别
在同时有frame和Iframe的一个窗口里frame最大可以做个frameset的儿子,Iframe最大也只能做到frameset的孙子.frame的布局限于几种,Iframe想放哪里放哪里.fra ...
- 【原创】Docker容器及Spring Boot微服务应用
Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不 ...
- Linux+mysql+apache+php+wordpress搭建个人空间
1. linux的安装 现在Linux的品种巨多,这个你可以选择一个你喜欢的linux系统,如果是新手并不建议你使用freebsd,gentoo等,建议你可以安装ubuntu,如果要安装u ...
- poj 1552 Doubles
#include <stdio.h> #include <stdlib.h> ]; int cmp(const void *a, const void *b) { return ...