C++primer笔记——变量和基本类型

变量的命名

(1)首字母只能是_或字母

(2)由_,字母和数字组成(不能包含除_外的任何字符)

数据类型

C++primer笔记——变量和基本类型_第1张图片

整型分为带符号(signed)和无符号(unsigned)两种,默认为带符号的(除了char,signed char和unsigned char),带符号的可以表示正数,负数或0,不带符号的只能表示正数或0

1 byte字节 = 8 bit比特

C++primer笔记——变量和基本类型_第2张图片

如何选择类型?

(1)浮点数尽量选用double型,float型精度不够,而且在某些设备上运算速度不如double型,long double提供的精度在一般情况下没有必要,而且消耗大

(2)char字符型用于存储单个字符,一般用来表示性别(男女),选项(abcd),成绩(优良中差)等,一般情况下string字符串型较常用

身份证号一般采用string型(有的后面有X)

(3)当明确知道数值不可能为负时,选用无符号类型

(4)int与long int取值范围和位数一致,若超过了int的取值范围则选用long long

类型转换

bool b = 42;      //b=true,非布尔类型赋值给布尔类型,0为false,否则为true
int i = b;        //i=1,布尔类型赋值给非布尔类型,false为0,true为1
i = 3.14;        //i=3,浮点数赋值给整数类型,只保留整数部分3
double pi = i;    //pi=3.0
unsigned char c = -1;  //c=256-1=255,无符号类型的值超出范围取模
signed char c2 = 256; //无符号类型的值超出范围结果不定,程序可能崩溃

无符号数不会小于0,这一点也关系到循环函数的写法,切勿混合使用带符号类型和无符号类型

练习2.3

32  4294967264  32  -32  0  0

字面值常量

整型字面值

数值20的表示:
20    /*十进制*/
024    /*八进制前面加0*/
0x14    /*十六进制前面加0x或0X*/

浮点型字面值

3.14159
3.14159E0
0.
0e0
.001

字符和字符串字面值

'a'   //char字符字面值,单引号
“Hello”    //string字符串型字面值,双引号

编译器在每个字符串后面加一个空字符“\0”,因此字符串字面值的实际长度比它的内容多1

//分多行书写的字符串字面值
cout<<"I am the king "   
      "of the world"<

转义序列

常见的:换行符\n   制表符\t

ASCII表

练习2.5

(a): character literal, wide character literal, string literal, string wide character literal.

(b): decimal, unsigned decimal, long decimal, unsigned long decimal, octal, hexadecimal.

(c): double, float, long double.

(d): decimal, unsigned decimal, double, double.

练习2.6

十进制

09为不合法的八进制,07为8进制

练习2.7

(a): Who goes with Fergus?(new line) "string"

(b): 31.4 "long double"

(c): 1024 "float"

(d): 3.14 "long double"

练习2.8

#include 
using namespace std;

int main()
{
    cout << "\062\115\012"<

默认初始化

注:在c++中,初始化和赋值是两个完全不同的操作,初始化是在创建变量时赋予其一个初始值,而赋值是把对象的当前值擦除,以一个新值来代替

若定义变量时没有指定初值,则变量被默认初始化:

(1)定义在函数体外部的变量初始化为0

(2)函数体内部的内置类型变量不被初始化,值不确定(建议初始化每一个内置类型的变量,否则运行结果无法把握)

(3)每个类决定其初始化对象的方式,如string类没有指定空值则生成一个空串

 

 

 

 

你可能感兴趣的:(C++primer笔记——变量和基本类型)