const的两种常见书写风格:
const double d = 1.1; //写法(1)
double const d2 = 2.2; //写法(2)
这两种写法语法上都对,且意思一样。都定义了一个double常量。
你更赞同哪种写法?
const double d = 1.1; //写法(1)
double const d2 = 2.2; //写法(2)
这两种写法语法上都对,且意思一样。都定义了一个double常量。
你更赞同哪种写法?
写法(1)更常见,我却认为写法(2)更合理。下面例子中写法(1)会导致严重的误解:
typedef char *cstr;
const cstr cs = "abc";
这个变量cs的类型是const char *呢还是char *const?
答案是后者:
cs = "ef"; //error, cs 是一个常量指针
*cs = 'A'; //ok. cs变为"Abc"
如果cs的定义按下面写法就不会产生误解了:
cstr const cs = "abc";
依此类推,定义一个常量指针csp,它指向一个const字串:
char const * const csp = "123";
//而不是:const char * const csp = "123";
写法(1)太常见了,书上介绍const都是这么写地,却如此地让人混淆。
使用写法(2)大家认为有道理没。