void *

函数指针和指向类成员的指针不能被赋给void *

 

字符串字面值常量

 1 #include <iostream>
 2  
 3 using namespace std;
 4  
 5 void f()
 6 {
 7     char * p = "hello";
 8     p[1] = 'a';
 9 }
10  
11 int main()
12 {
13     f();
14  
15     return 0;
16 }

书上说C++11不能接受,不过我分别试了gcc的3.4.5和7.2版本,编译都没有问题。当然了,要是这么写可就坑了,直接会core的

 

指针与const

 1 void f1(char * p)
 2 {
 3     char s[] = "Gorm";
 4 
 5     const char * pc = s; //指向常量的指针
 6     pc[3] = 'g'; //错误:pc指向常量
 7     pc = p; //ok
 8 
 9     char * const cp = s; //常量指针
10     cp[3] = 'a'; //ok
11     cp = p; //错误:cp是一个常量
12 
13     const char * const cpc = s; //指向常量的常量指针
14     cpc[3] = 'a'; //错误:cpc指向常量
15     cpc = p; //错误:cpc本身一个常量
16 }

 

相关文章:

  • 2022-01-16
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2021-09-20
猜你喜欢
  • 2021-12-30
  • 2021-08-29
  • 2021-09-10
  • 2021-12-05
  • 2021-07-07
  • 2021-09-10
  • 2021-10-28
相关资源
相似解决方案