void 类型的指针
#include<bits/stdc++.h>
using namespace std;
/**
* void * 类型的指针
* */
int main() {
int i = 4, *pi = &i;
void *pv;
double d = 9.0, *pd = &d;
pv = &i;
pv = pi;
// cout<<*pv<<endl; // 错误,因为不确定 pv 的类型,无法访问
pv = pd;
cout<< *(double*)pv<<endl;
return 0;
}
const 与指针
#include<bits/stdc++.h>
using namespace std;
/**
* const 与指针
* */
int main() {
// char* const p0; // 错误,常量p0必须初始化
char* const p1 = "console"; // 常指针p1,指向不能变,但是值可以变
char const *p2; // 指向常量的指针,指向可以变,但是值不能变
const char* p3 = "console"; // 指向常量的指针
const char* const p4 = "console"; // 指向常量的常指针
// const char* const p5; // 错误,指向常量的常指针未初始化
// p1 = "xinhun"; // 错误,常指针,指向不能变
p2 = "xinhun";
p3 = "xinhun";
// p4 = "xinhun"; // 错误
p1[0] = 'a'; // 正确,可以修改指向的值
// p2[0] = 'a'; // 错误,值不能变
// p3[0] = 'a'; // 错误,值不能变
// p4[0] = 'a'; // 错误
return 0;
}