标签:
////
ansi c中,const修饰是全局可见的,比如头文件中的const变量
c++将所有const修饰缺省为static
////
c语言的bool是c99之后加入的。
const char *p = ""; p is point to const char
*p 是 char;
const 修饰 char;
char const *p = ""; p is point ro char const
*p 是 char const;
char * const p; const p is point to char ;; -> ((*p) (* const p))
*(const p)是char;
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:
把一个声明从右向左读。
char * const cp; ( * 读成 pointer to ) cp is a const pointer to char
const char * p; p is a pointer to const char;
char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
C++标准规定,const关键字放在类型或变量名之前等价的。
////顺序
基类构造 成员构造 构造
析构 成员析构 基类析构
////奇怪的
void &a = 0; //err
double &r = 0; // ok? 我试验过不ok
int *p; int * &rp = p;rp = a;// 指针的引用 ok
int a[1]; int & ra[10] = a;// 没有数组的引用
没有引用的引用,没有引用的指针;
int & rs[1] = a; // err
////
保留字不一定出现在语法中。
////
(++i) + (++j)
这个表达式的计算,有两个副作用:
i自增1;
j自增1;
但是到底哪一个先发生?答案是:任何答案都不对。
////
例如下面的表达式,按照标准规定,执行结果是未定义的:
(i++)+(i++)
标签:
原文地址:http://www.cnblogs.com/d20062303732/p/4310053.html