abc_begin

导航

C++程序设计(第4版)读书笔记_指针、数组与引用

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 }

 

posted on 2017-11-02 16:46  LastBattle  阅读(134)  评论(0编辑  收藏  举报