C++_Chapter 2 对象与基本类型

Chapter 2 对象与基本类型

2-1 从初始化和赋值语句谈起

初始化和赋值语句是程序中最基本的操作,其功能是将某个值与一个对象关联起来

int x = 10; //初始化
x = 10;     //赋值语句

值:字面值(如上述10)、对象(变量、常量所表示的值)
标识符:变量、常量、引用—>(对象)
初始化基本操作:

1) 在内存中开辟空间(在栈上或者在堆上),用于保存值;
2) 在编译器中构造符号表,将标识符与相关的内存空间关联起来

值与对象都有类型!!(10也是有类型的)
初始化/赋值可能会涉及到类型转换

2-2 类型详述

类型是一个编译期概念,可执行文件中不存在类型的概念
C++是一个强类型语言,主要是在编译阶段与类型大量打交道
引入类型是为了更好的描述程序,防止误用
类型描述了四种信息:

#include 

int main()
 {
     int x = 10.5; // 4 byte --> 32 bit -->2^32
     char y = 'a';// 1 byte --> 4 bit --> 2^8

     std::cout << sizeof(x) <<'\n';
     std::cout << sizeof(char) <<'\n';
 }

1)类型存储所需要的尺寸,例如:int–>占多大的内存?;char–>占多大的内存?(在不同的编译环境下值可能不同)
2)取值空间(numeric_limits);
3)对齐信息(alignof)
4)类型可执行操作

基本(内建)类型:C++语言中所支持的类型

数值类型

·字符类型(char,wchar_t,char16_t,char32_t)
char是8位的,能表示256种字符,ASCII字符;
UTF-8编码???
wchar_t是宽字符类型,wchar_t一般为16位/32位,所能表示的字符数量超过char;
char32_t、char16_t可以实现Unicode编码;
·整数类型:
带符号整数类型与无符号整数类型
带符号整数类型:int & unsigned int(unsigned int==unsigned):int有负有正,unsigned int无符号
short–2个字节;int–4个字节;long/long long–8个字节;
·浮点类型:
float, double, long double
double尺寸比float宽一倍;
·void—特殊类型,不返回参数
·复杂类型:由基本类型组合、变种所产生的类型,可能是标准库引入,或自定义类型

与类型相关的标准未定义部分

char是否有符号?与编译器相关::unsigned char/signed char
整数在内存中的保存形式:大端/小端::在两台机器上传输数据的时候会考虑(网络传输)
每种类型的大小(间接影响取值范围)C++11 中引入了固定尺寸的整数类型,如int32_t

字面值及其类型

你可能感兴趣的:(C++,c++,开发语言)