C++之基本数据类型介绍
2015-02-09 00:11
253 查看
1.简单变量
信息将存储在哪里。
要存储什么值。
存储何种类型的值。
int a=5;//程序找到一块能够存储整数的内存,将该内存单元标记为a,将5复制到该内存单元上。
(1)变量名命名规则:a.在名称中只能使用字母字符、数字和下划线;b.名称的第一个字符不能是数字;c.区别大小写;d.不能将关键字用作名称;e.对名称长度没有限制;f.以两个下划线或下划线和大写字母打头的名称被保留给实现使用。
(2)几个基本概念
宽度用于描述存储整数时使用的内存量,使用内存越多则越宽。
计算机内存的基本单位是位(bit),字节通常指的是8位的内存单元。
自然长度:计算机处理起来效率最高的长度。
初始化,在对变量进行初始化之前,该变量的值是不确定的,是它在被创建之前该内存单元保存的值。
整型常量:显式书写的常量如217和5等。基数通常为10、8、16.不管是什么形式,都被存储为二进制数(以2为基数).
默认情况下c++将整型常量存储为int类型,把浮点数常量存储为double类型。
bool类型 预定义false和true为0和1。任何数字值或指针值都可以被隐式转换为bool值,任何非零值都被转换为true。
const限定符,应该在声明中对const进行初始化。
有效位:数字中有意义的位。12345有效位有5位,而14000有效位为2位,其他三位只不过是占位符而已。
cout<<hex;cout<<oct;
(3)int、long、short(有符号和无符号的区别,表示范围) 对类型名如(int)使用操作符sizeof时,应该将名称放在括号中,对变量名使用,则括号名是可选的。
(4)无符号数 使用unsigned标记
(5)char类型:字符和小整数
char字符实际上是一个整数,可以使用整数操作。
关于成员函数cout.put():通过类对象cout来使用函数put()
转义序列字符如'\n'、'\a'、'\b'等(换行、蜂鸣、退格).
2.浮点数
计算机将浮点数的值分为两部分存储,一部分表示值,另一部分对值进行放大或缩小。它的存储是基于二进制的,因此缩放因子是2.
7.2 e6是非法的,数字和e之间不能有空格。
cout.setf(ios_base::fixed,ios_base::floatfield);//这种调用迫使输出使用定点表示法。
优点"可以表示整数之间的值,表示范围更大"缺点"运算速度比整数慢,精度降低"
3.C++算术操作符
(1)基本操作符+、-、*、/、%(要求两个操作数都是整型)
(2)仅当两个操作符被用于同一个操作数时,优先级和结合性规则才有效。同一优先级如2*3+3*4没有指出应该先算哪个乘法。
(3)除法分支:当有操作数为浮点数时,结果也为浮点数。对不同类型进行运算时,C++把它们转换成同一类型。
(4)类型转换
C++中有11种整型和3种浮点类型。
C++允许将一种类型的值赋给另一种类型的变量,值将被转变成接受变量的类型。
整型提升和强制类型转换。(typename) value或者typename (value)
信息将存储在哪里。
要存储什么值。
存储何种类型的值。
int a=5;//程序找到一块能够存储整数的内存,将该内存单元标记为a,将5复制到该内存单元上。
(1)变量名命名规则:a.在名称中只能使用字母字符、数字和下划线;b.名称的第一个字符不能是数字;c.区别大小写;d.不能将关键字用作名称;e.对名称长度没有限制;f.以两个下划线或下划线和大写字母打头的名称被保留给实现使用。
(2)几个基本概念
宽度用于描述存储整数时使用的内存量,使用内存越多则越宽。
计算机内存的基本单位是位(bit),字节通常指的是8位的内存单元。
自然长度:计算机处理起来效率最高的长度。
初始化,在对变量进行初始化之前,该变量的值是不确定的,是它在被创建之前该内存单元保存的值。
整型常量:显式书写的常量如217和5等。基数通常为10、8、16.不管是什么形式,都被存储为二进制数(以2为基数).
默认情况下c++将整型常量存储为int类型,把浮点数常量存储为double类型。
bool类型 预定义false和true为0和1。任何数字值或指针值都可以被隐式转换为bool值,任何非零值都被转换为true。
const限定符,应该在声明中对const进行初始化。
有效位:数字中有意义的位。12345有效位有5位,而14000有效位为2位,其他三位只不过是占位符而已。
cout<<hex;cout<<oct;
1 //cout<<hex;和cout<<oct;控制符实际上是一条消息,告诉cout采取何种行为 2 #include<iostream> 3 using namespace std; 4 int main() 5 { 6 using namespace std; 7 int chest =42; 8 int waist =42; 9 int inseam=42; 10 11 cout<<"Monsieur cuts a striking figure!"<<endl; 12 cout<<"chest= "<<chest<<" (decimal)"<<endl; 13 cout<<hex;//不会再屏幕上显示任何内容,而只是显示cout显示整数的方式 14 cout<<"waist= "<<waist<<" hexadecimal"<<endl; 15 cout<<oct; 16 cout<<"inseram= "<<inseam<<" (octal)"<<endl; 17 return 0; 18 }
(3)int、long、short(有符号和无符号的区别,表示范围) 对类型名如(int)使用操作符sizeof时,应该将名称放在括号中,对变量名使用,则括号名是可选的。
1 /short int long 2 #include<iostream> 3 #include<limits.h> 4 int main() 5 { 6 using namespace std; 7 int n_int=INT_MAX; 8 short n_short=SHRT_MAX; 9 long n_long=LONG_MAX; 10 11 cout<<"int is "<<sizeof(int)<<" bytes."<<endl; 12 cout<<"short is "<<sizeof n_short<<" bytes."<<endl; 13 cout<<"long is "<< sizeof n_long<<" bytes."<<endl; 14 15 cout<<"Maximum values:"<<endl; 16 cout<<"int: "<<n_int<<endl; 17 cout<<"short: "<<n_short<<endl; 18 cout<<"long: "<<n_long<<endl; 19 20 cout<<"Minimum int value= "<<INT_MIN<<endl; 21 cout<<"Bits per byte= "<<CHAR_BIT<<endl; 22 return 0; 23 }
(4)无符号数 使用unsigned标记
1 /如何使用无符号类型,程序试图超越整型的限制时将产生的结果 2 //这些整型变量的行为就像里程表,一旦超出了限制,其值将为范围另一端的取值 3 #include<iostream> 4 #define ZERO 0 5 #include<climits> 6 int main() 7 { 8 using namespace std; 9 short sam=SHRT_MAX; 10 unsigned short sue=sam; 11 12 cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl; 13 cout<<"Add $1 to each account."<<endl<<"Now "; 14 sam=sam+1; 15 sue=sue+1; 16 cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl; 17 sam=ZERO; 18 sue=ZERO; 19 cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl; 20 sam=sam-1; 21 sue=sue-1; 22 cout<<"Sam has "<<sam<<" dollars and sue has "<<sue<<" dollars deposited."<<endl; 23 cout<<"Lucky sue!"<<endl; 24 return 0; 25 }
(5)char类型:字符和小整数
1 //值的类型引导cout选择如何显示值 2 //ch实际上是一个整数,因此可以对它使用整数操作 3 #include<iostream> 4 int main() 5 { 6 using namespace std; 7 char ch='M'; 8 int i=ch; 9 cout<<"The ASCII code for "<<ch<<" is "<<i<<endl; 10 11 cout<<"Add one to the character code:"<<endl; 12 ch=ch+1;//对ch使用整数操作 13 i=ch; 14 cout<<"The ASCII code for "<<ch<<" is "<<i<<endl; 15 cout<<"Displaying char ch using cout.put(ch):"; 16 cout.put(ch);//成员函数调用 通过类对象cout来使用函数put() 17 cout.put('!'); 18 cout<<endl<<"Done!"<<endl; 19 return 0; 20 } 21 22 //cout<<'$';//打印$的ASCII值 23 //cout.put('$');//打印字符$
char字符实际上是一个整数,可以使用整数操作。
关于成员函数cout.put():通过类对象cout来使用函数put()
转义序列字符如'\n'、'\a'、'\b'等(换行、蜂鸣、退格).
2.浮点数
计算机将浮点数的值分为两部分存储,一部分表示值,另一部分对值进行放大或缩小。它的存储是基于二进制的,因此缩放因子是2.
7.2 e6是非法的,数字和e之间不能有空格。
cout.setf(ios_base::fixed,ios_base::floatfield);//这种调用迫使输出使用定点表示法。
1 //float和double类型及它们表示数字时在精度方面的差异 2 //float确保至少有6位有效位,double确保至少有15位有效位 3 //浮点常量默认为double类型 4 #include<iostream> 5 int main() 6 { 7 using namespace std; 8 cout.setf(ios_base::fixed,ios_base::floatfield); 9 float tub=10.0/3.0; 10 double mint=10.0/3.0; 11 const float million=1.0e6; 12 13 cout<<"tub= "<<tub; 14 cout<<",a milloin tubs= "<<million*tub; 15 cout<<",\n and ten million tubs = "<<10*million*tub<<endl; 16 17 cout<<"mint= "<<mint<<" and a million mints = "<<million*mint<<endl; 18 return 0; 19 }
优点"可以表示整数之间的值,表示范围更大"缺点"运算速度比整数慢,精度降低"
1 //浮点数的优缺点 2 //1.可以表示整数之间的值。2.有缩放因子所以表示值的范围更大 3 //a、运算速度比整数慢。b、精度降低 4 #include<iostream> 5 int main() 6 { 7 using namespace std; 8 float a=2.34e+22f; 9 float b=a+1.0f; 10 11 cout<<"a= "<<a<<endl; 12 cout<<"b-a= "<<b-a<<endl; 13 return 0; 14 } 15 16 //程序运行结果b-a的值等于0. 问题在于a的值是一个小数点左边有23位的数字。加上1就是在第23位加1 17 //但float类型只能表示数字中的前6位或前7位,因此修改第23位对这个数的值不会有影响。
3.C++算术操作符
(1)基本操作符+、-、*、/、%(要求两个操作数都是整型)
(2)仅当两个操作符被用于同一个操作数时,优先级和结合性规则才有效。同一优先级如2*3+3*4没有指出应该先算哪个乘法。
(3)除法分支:当有操作数为浮点数时,结果也为浮点数。对不同类型进行运算时,C++把它们转换成同一类型。
1 //c++中的/运算 2 //在对不同类型进行运算时,把它们转换为同一类型 3 #include<iostream> 4 int main() 5 { 6 using namespace std; 7 cout.setf(ios_base::fixed,ios_base::floatfield); 8 cout<<"Integer division:9/5= "<<9/5<<endl; 9 cout<<"Floating-point division:9.0/5.0= "<<9.0/5.0<<endl; 10 cout<<"Mixed division: 9.0/5= "<<9.0/5<<endl; 11 cout<<"double constants:1E7/9.0= "<<1e7/9.0<<endl; 12 cout<<"float constants:1e7f/9.0f= "<<1e7f/9.0f<<endl; 13 return 0; 14 } 15 16
(4)类型转换
C++中有11种整型和3种浮点类型。
C++允许将一种类型的值赋给另一种类型的变量,值将被转变成接受变量的类型。
整型提升和强制类型转换。(typename) value或者typename (value)
1 //强制类型转换 2 #include<iostream> 3 int main() 4 { 5 using namespace std; 6 int duks,bats,coots; 7 8 duks=19.99+11.99; //31.98赋给变量duks时,被截短为31 9 bats=(int)19.99+(int)11.99; //在进行加法运算之前先被截断为19和11,所以变量的值为30 10 coots=int(19.99)+int(11.99); 11 12 cout<<"duks= "<<duks<<",bats= "<<bats<<",coots= "<<coots<<endl; 13 char ch='Z'; 14 cout<<"The code for "<<ch<<" is "<<int(ch)<<endl;//利用强制转换打印字符对应的整数。 15 return 0; 16 }
相关文章推荐
- C++ 基本数据类型
- C++ 基本数据类型
- 【C/C++语言入门篇】-- 基本数据类型
- C++的一些基本数据类型转换
- C/C++基本数据类型
- C++中得到基本数据类型的取值范围
- 【十一长假C++八日谈】八天上手C++ 第一篇:基本语句与数据类型
- 【C/C++语言入门篇】-- 基本数据类型
- C++与Java基本数据类型比较
- 【C/C++语言入门篇】-- 基本数据类型
- C++基本数据类型与输入输出
- c++ primer学习笔记(2)-c++基本数据类型
- 16位计算机中C++常用基本数据类型描述 和 字符常量 摘自 钱能C++教程
- 【转】【C/C++语言入门篇】-- 基本数据类型
- c++ 基本数据类型长度(vc6.0 32位机;
- Dev-C++下基本数据类型学习小结
- C++中基本数据类型的较特别形式的初始化
- c++ primer学习笔记(2)-c++基本数据类型
- C++基本数据类型
- C++与Java基本数据类型比较