一、变量名

几条简单的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++学习笔记之数据类型的更多相关文章

  1. es6学习笔记--新数据类型Symbol

    学习了es6语法的symbol类型,整理笔记,闲时复习. Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为 ...

  2. javascript深入浅出——学习笔记(六种数据类型和隐式转换)

    在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容

  3. Rust学习笔记一 数据类型

    写在前面 我也不是什么特别厉害的大牛,学历也很低,只是对一些新语言比较感兴趣,接触过的语言不算多也不算少,大部分也都浅尝辄止,所以理解上可能会有一些偏差. 自学了Java.Kotlin.Python. ...

  4. MySQL学习笔记之数据类型

    数据类型在所有的数据库使用当中,都是避免不了的部分.以前每次写SQL语句,对于定义成哪种数据类型总是迷迷糊糊,今天就来彻底弄清.以下介绍仅针对MySQL 5.5以上版本. 一.字符串类型 1.char ...

  5. Java学习笔记三——数据类型

    前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...

  6. Redis学习笔记1-Redis数据类型

    Redis数据类型 Redis支持5种数据类型,它们描述如下: Strings - 字符串 字符串是 Redis 最基本的数据类型.Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串 ...

  7. python学习笔记二 数据类型(基础篇)

    Python基础 对于Python,一切事物都是对象,对象基于类创建         不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上 ...

  8. CUBRID学习笔记 26 数据类型3cubrid教程

    接上面的集合 集合之 set 每个集合元素是不同的值, 但是类型只能是一种.也可以有其他表的记录 如下 CREATE TABLE set_tbl ( col_1 set(CHAR(1))); INSE ...

  9. C#学习笔记5:数据类型与进制转换

    1.C#: 8种整形类型.2种用于科学计算的二进制浮点类型.1种用于金融计算的十进制浮点类型. 2.Decimal是一种特殊的浮点类型,能够存储大数字而无表示错误. 常用于货币计算.在表示的所有十进制 ...

随机推荐

  1. Levenshtein Distance (编辑距离) 算法详解

    编辑距离即从一个字符串变换到另一个字符串所需要的最少变化操作步骤(以字符为单位,如son到sun,s不用变,将o->s,n不用变,故操作步骤为1). 为了得到编辑距离,我们画一张二维表来理解,以 ...

  2. [Everyday Mathematics]20150221

    设 $y_n=x_n^2$ 如下归纳定义: $$\bex x_1=\sqrt{5},\quad x_{n+1}=x_n^2-2\ (n=1,2,\cdots). \eex$$ 试求 $\dps{\vl ...

  3. 链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。[手稿]

    消息 7302,级别 16,状态 1,第 1 行 无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.JET.OLEDB.4.0&qu ...

  4. CentOS7 安装 scala 2.11.1

    wget http://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.tgz?_ga=1.61986863.2013247204.144801902 ...

  5. md5加密算法c语言版

    from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) ---------------- ...

  6. C++抽象机制之二:运算符重载

    1.二元运算符aa@bb,可以定义为 1).一个参数的非静态成员函数:aa.operator@(bb);  (成员函数有this指针) 2). 两个参数的非成员函数:operator@(aa,bb); ...

  7. memset()实现及细节

    memset是计算机中C/C++语言函数.将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为 ...

  8. R工作空间

    工作空间,指的是你现有的R语言工作环境,它包括了任何一个用户定义的对象,比如:向量,矩阵,数据结构,列表,方法等.在一个R会话结束的时候,你可以保存现有的工作空间的映像,在下一次R启动的时候,该工作空 ...

  9. GitHub--git push出错解决

    当使用GitHub进行代码push是,出现了下面的错误,该如何是好? 错误描述: ! [rejected]        master -> master (non-fast-forward)e ...

  10. How to Keep Alive SSH Sessions

    How to Keep Alive SSH Sessions Many NAT firewalls time out idle sessions after a certain period of t ...