c++入门笔记(5)数据类型
来源:互联网 发布:网络封包抓取 编辑:程序博客网 时间:2024/05/21 14:04
c++有6种数据类型
分别是:
布尔型(bool)
字符型(char)
双字符型(wchar_t)
整型(int)
- 无符号型
- 长整型
- 短整型
单精度浮点型(float)
双精度浮点型(double)
- 双精度型
- 长双精度型
静态变量(static)
外部变量(extern)
寄存器变量
自动存储变量
从广义上来划分c++的数据类型的话,可以将其分为两个大类:
常量
常量意为着它的值不可改变。
变量
变量的值可以改变。
检验数据类型大小
例1:使用sizeof()函数可检验数据类型占用几个字节空间,以整型为例.
#include <iostream>int main(){ std::cout << "检验数据类型大小-int:" << sizeof(int) << "个字节" << std::endl; return 0;}
输出:
检验数据类型大小-int:4个字节
布尔型(bool)
布尔型可表示两个逻辑值,1和0,即真(true)或假(false).
例1:
#include <iostream>int main(){ bool check = true; //定义一个布尔型变量,并将它的值初始化为真 if(check == true){ //如果check的值为真,那么执行语句块的代码 std::cout << "Hello,word!\n"; } return 0;}
输出:
Hello,word!
bool check = true
该语句等同于 bool check = 1
字符型变量(char)
字符型变量存放的是字符,这个字符指的是计算机字符集中的字符(ASCII码).字符型变量只占1个字节.
一个字节为8位(2进制的8位),而最大的8位2进制数字为1111 1111,换算成10进制为255,因此字符型变量可存储256个字符,而一个字符可解释为0~255之间的一个数或某个ASCII码.
计算机用1和0的模式给它们做的任何事情编码,有时这些数为指令,有时这些数为一些值,有时则是代码,为了区分开来,一种重要的标准化代码集ASCII产生了.译文:美国标准信息交换码.适用于所有的拉丁文字母,ASCII码有7位码和8位码两种形式.
ASCII码共128个字符.,第一个字符或标点都用一个7位二进制数表示.
在计算机的存储单元中,一个ASCII码值占一个字节(8个2进制位),其最高位用作奇偶校验位.是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种.
奇校验规定:
正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位添1.
偶校验规定:
正确的代码一个字节中的个数必须是偶数,若非偶数,则在最高位添1.
例2:
#include <iostream>int main(){ char ch; //定义一个字符型变量ch ch = 'A'; //将大写字母A存储到变量名ch所代表的地址中 std::cout << "字符型变量ch中所存储的字符是:" << ch << std::endl; std::cout << "它的ASCII码是:"<< (int)ch << std::endl; return 0;}
输出:
字符型变量ch中所存储的字符是:A
它的ASCII码是:65
char ch;
该语句定义了一个字符型变量,它的名字为ch,这样系统便为该变量分配了一个字节的空间,并将空间的地址赋给变量名ch.接着我们就可以通过变量名存储一个字符.
std::cout << "它的ASCII码是:"<< (int)ch << std::endl;
(int)ch 强制转换成整型数值.
当将一个字符赋给一个char型变量时,实现上是将0~255中某个数赋给了该变量,由于编译器知道如何进行字符与ASCII码值之间的转换,因此在输出char型变量的值时,我们看到的总是字符.
例3:数字0与字符’0’是有区别的
#include <iostream>int main(){ char ch1 = 0; //数值0 char ch2 = '0'; //字符'0' std::cout << "数值0:" << ch1 << ",ASCII码:" << (int)ch1 << std::endl; std::cout << "字符0:" << ch2 << ",ASCII码:" << (int)ch2 << std::endl; return 0;}
输出:
数值0:,ASCII码:0
字符0:0,ASCII码:48
区别:
数字0的字符是空,
字符0的ASCII码是48.
例4.输出第32~第128之间所有字符
#include <iostream>int main(){ for(int i=32; i<=128; i++){ //从第32个字符到第128个字符之间所有字符 std::cout << (char)i << "\t"; //强制转换成字符型 if(i%5==0){ //每5个换一行 std::cout << "\n"; } } return 0;}
双字符型(wchar_t)
双字符类型又叫宽字符类型,占2个字节.
中文输出有乱码......未解决
整型(int)
整型int占4个字节.32位2进制数.
int类型的长度并不是固定的,它和系统平台有关糸.
在16位系统中:占2个字节空间.
在32位系统中:占4个字节空间.
在64位系统中:占4个字节空间.
int a; //定义一个整型变量a
短整型(short int)
可简写为short,占2个字节.16位2进制数.
short int a; //定义一个短整型变量a
长整型(long int)
可简写为long,占8个字节.64位2进制数.
在32位系统中占4个字节.
在64位系统中占8个字节.
long int a; //定义一个长整型变量a
无符号整型
无符号整型只能表示正整数.
unsigned int a; //定义无符号整型a,占4个字节unsigned short b; //定义无符号短整型b, 占2个字节unsigned long c; //定义无符号长整型c, 占8个字节
有符号整型
有符号整型可以表示负整数.同时由于有符号整型最高位用于表示符号位,因此取值范围要比无符号整型小一倍.
单精度浮点型变量(float)
长度4个字节。32位2进制。精度7位有效数字.
双精度浮点型(double)
长度8字节,64位2进制。精度16位有效数字。
1个符号位,11个偏码表示的指数位(偏值=1023),共52位尾数位(省略了最高位的固定整数1)。
符号位为0是正,为1是负。
指数位共11位,可表示0~2047或-1022~1024。
由于它的取值范围是由指数来决定的,所以剩余尾数52位,最多可表示2*252个有效数字。
常量
常量,其值不可改变。可以对常量进行初始化,但是此后就不能再对其进行赋值。
关键字const
const double PI = 3.1415926; //定义一个双精度类型常量PI,并将它的值初始化为3.1415926
这样这个PI的值就不能再改变了。
枚举型常量
枚举型常量可以使你用文字来替代数字,这样就可以使程序更加易懂。
关键字:enum
例:
enum num{zero, one, two, three, four};
关键字enum将其后的num 声明为枚举型。
然后我们为num定义了5个值:zero, one , two, three, four,它们分别代表0, 1, 2, 3, 4。
最后分号表示枚举型num定义结束。
这个例子枚举型的第1个常量默认为0,其后依次增加。
我们也可以自定义起始值。
例:
enum num{zero = 100, one, two = 200, three, four};
此例:我们自定义了第1个常量zero的起始值为100,
第2个常量one的值我们没有指定,它自动为101,
第3个常量two被赋为200,
第4个常量three自动为201,
第5个常量four自动为202。
测试:
#include <iostream>int main(){ enum num{zero = 100, one, two = 200, three, four}; std::cout << zero << "\t" << one << "\t" << two << "\t" << three << "\t" << four << std::endl; return 0;}
输出:
100 101 200 201 202
实例:判断今天是周未还是工作日
#include <iostream>int main(){ enum day{Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; day today; //用枚举型常量day创建一个变量today today = Monday; //今天赋值星期1 if(today == Sunday || today == Saturday){ //判断一下今天是周未吗?(星期日和星期六) std::cout << "周末休息\n"; } else { std::cout << "工作日\n"; } return 0;}
输出:
工作日
用enum定义了一个枚举型常量day,它有7个值,每个值对应一个整数。
从0开始计数,这样星期1(Monday)的值为1,而星期6(Saturday)的值则为6。
这个程序通过使用英文单词:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
来代替:
0, 1, 2, 3, 4, 5, 6
可以使我们很清楚地了解程序的意思。
这就是枚举型常量的作用,它可以使程序的可读性增加。
数据类型取值范围
在64位ubuntu系统中
- c++入门笔记(5)数据类型
- 数据类型2-C语言学习笔记5
- c笔记02---数据类型
- C笔记 数据类型 指针
- C语言入门-数据类型1
- 《c语言从入门到精通》看书笔记——第3章 数据类型
- C基本数据类型的笔记
- 15.02.04,C数据类型笔记
- C语言学习笔记 数据类型
- 学习笔记---C语言数据类型
- 《Inside C#》笔记(三) 数据类型
- C语言笔记(数据类型)
- 【笔记-C语言】 基本数据类型
- C程序设计笔记1-5章,简介/数据类型/结构
- char数据类型3-C语言学习笔记5
- 【C/C++语言入门篇】-- 基本数据类型
- 【C/C++语言入门篇】-- 基本数据类型
- 【C/C++语言入门篇】-- 基本数据类型
- 大数据学习笔记(十)-Hive中的Storage format
- 使用git reset 合并只有两个commit到一个
- CSS3将彩色图片转换成黑白图片
- deepmind_lab 有了root用户权限---sudo---bazel----msys64 下载
- Linux下安装配置Nginx以及安装PHP
- c++入门笔记(5)数据类型
- Codeforces Round #450 (Div. 2) C
- 实战网页布局心得(一)
- Find Elements in Matrix
- 学习枚举类型
- 如何在java中发起http和https请求
- Android 非UI线程是否可以更新UI
- Linux 服务 —— FTP
- AutoCAD .Net 创建Ribbon界面(二)