版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuck51cto/article/details/80527418
C++ Primer第五章 表达式
int i; // named, uninitialized int variable
int *pi = new int; // pi points to dynamically allocated,
// unnamed, uninitialized int
1. 操作符
算术操作符,系操作符和逻辑操作符,位操作符,赋值操作符,自增和自减操作符,箭头操作符,三元操作符,sizeof 操作符
2. new 和 delete 表达式
定义变量时,必须指定其数据类型和名字。而动态创建对象时,只需指定其数据类型,而不必为该对象命名。取而代之的是,new 表达式返回指向新创建对象的指针,我们通过该指针来访问此对象:
int *pi = new int; // pi points to dynamically allocated,
// unnamed, uninitialized int
3. 动态创建对象的初始化
new动态创建的对象可用初始化变量的方式实现初始化:
指针的删除
delete p
4. 强制类型转换
dynamic_cast dynamic_cast 支持运行时识别指针或引用所指向的对象
const_cast 去掉const
const char *pc_str;
char *pc = const_cast<char*>(pc_str);
static_cast 编译器隐式执行的任何类型转换都可以由 static_cast 显式完成
int ia = 97;
char ca = static_cast<char>(ia);
cout<<ca<<endl;
int ib= 45;
int *pi = &ib;
void *vi = pi;
int ic = *(static_cast<int*>(vi));
5. C语言老式强制类型转换
char *pc = (char*) ip;