文档介绍:第3章 C++基本语法
主要内容
1
数据类型
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
程序中的各种加工和处理都是针对某些数据进行的,这些数据由数据类型描述。数据类型规定了数据的存储结构(在内存中占据的大小和布局)、可以进行的运算、取值范围。
C++中的数据类型大致分为三类:
C++预定义的一组内置的基本数据类型,表示常见的简单数据,如整数、浮点数等;
复合类型,由基本数据类型组合而成的更复杂的数据类型,如数组、结构体、联合、枚举等;
类类型,即用户自己定义的抽象数据类型。为了方便程序员,C++标准库中还提供的一些常用的抽象数据类型。
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
1
内置数据类型
字符类型
字符型char,通常用来表示单个字符和小整数。
整数类型
整型int、短整型short、长整型long,分别代表不同长度的整数值
char、short、int和long类型都可以用signed和unsigned修饰
浮点类型
浮点型float、双精度浮点型double和长双精度long double
布尔类型
bool类型只有两个值:true和false。
----------------------------------------
bool类型、char类型、各种整数类型通称为整值类型。整值类型和浮点类型一起被称为算术类型。
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
1
内置数据类型
指针类型
引用类型
数组
结构体
联合
枚举
类类型
内置数据类型的空间大小
标准C++对内置数据类型的空间大小并没有做出严格规定, 但为了编写可移植的代码,应该了解你所使用的编译器和机器,避免对这些特性做出某种假定。
如下代码可以测试C++编译器为每种数据类型分配的空间大小:
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
1
内置数据类型
指针类型
引用类型
数组
结构体
联合
枚举
类类型
#include <iostream>
using namespace std;
int main( )
{
cout << sizeof(char) <<endl;
cout << sizeof(int) << endl;
cout << sizeof(float) <<endl;
cout << sizeof(double) <<endl;
cout << sizeof(bool) <<endl;
return 0;
}
Visual C++ -C++结果:
1
4
4
8
1
指针类型
指针持有一个对象的地址,通过指针可以间接操作这个对象。指针的典型用法:
构建链式的数据结构,如链表和树
管理程序执行时动态分配的对象
作为函数的参数
每个指针都有相关的类型,需要在定义指针时指出。不同类型的指针的表示方法和保存的地址值并没有分别,区别只是在于指针指向的对象类型不同。指针的类型指出了如何解释该内存地址保存的内容,以及该内存区域应该有多大。例如:
int *pi; //指向整型的指针,如指向内存地址是1000,则跨越的地址空间是1000~1003
char *pc;//指向字符型的指针,如指向内存地址是1000,则只占据1000这个字节的区域
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
1
内置数据类型
指针类型
引用类型
数组
结构体
联合
枚举
类类型
空指针
指针值为0时表示它不指向任何对象,即空指针。指针不能保存非地址值,也不能被赋值或初始化为不同类型的地址值。
2
常量和变量
3
运算符和表达式
4
语句
5
小结
数据类型
1
内置数据类型
指针类型
引用类型
数组
结构体
联合
枚举
类类型
int ival = 100;
int *pi = &ival; // pi 被初始化为ival的地址
int *pi2 = 0; //pi2不指向任何对象
pi2 = ival; //编译错误
double dval = ;
pi = &dval; //编译错误
通用指针
C++提供了一种通用指针,即void*指针,它可以持有任何类型的地址值。不能操纵void指针指向的对象,只能传送该地址值或和其他地址进行比较。C++也不允许void指针到其他类型指针的直接赋值。
2
常量和变量
3
运算符和表达式