void 类型的指针

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. /**
  4. * void * 类型的指针
  5. * */
  6. int main() {
  7. int i = 4, *pi = &i;
  8. void *pv;
  9. double d = 9.0, *pd = &d;
  10. pv = &i;
  11. pv = pi;
  12. // cout<<*pv<<endl; // 错误,因为不确定 pv 的类型,无法访问
  13. pv = pd;
  14. cout<< *(double*)pv<<endl;
  15. return 0;
  16. }

const 与指针

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. /**
  4. * const 与指针
  5. * */
  6. int main() {
  7. // char* const p0; // 错误,常量p0必须初始化
  8. char* const p1 = "console"; // 常指针p1,指向不能变,但是值可以变
  9. char const *p2; // 指向常量的指针,指向可以变,但是值不能变
  10. const char* p3 = "console"; // 指向常量的指针
  11. const char* const p4 = "console"; // 指向常量的常指针
  12. // const char* const p5; // 错误,指向常量的常指针未初始化
  13. // p1 = "xinhun"; // 错误,常指针,指向不能变
  14. p2 = "xinhun";
  15. p3 = "xinhun";
  16. // p4 = "xinhun"; // 错误
  17. p1[0] = 'a'; // 正确,可以修改指向的值
  18. // p2[0] = 'a'; // 错误,值不能变
  19. // p3[0] = 'a'; // 错误,值不能变
  20. // p4[0] = 'a'; // 错误
  21. return 0;
  22. }