常量const
1、const声明格式
const 类型名 常量名 = 初值;
OR
类型名 const 常量名 = 初值;
eg:
const int a = 100;
等价于
int const a = 100;
2、const 与 指针(就近)
Ⅰ、指向变量的常指针(const修饰指针,即修饰存储在指针里的地址) 定义格式:
类型名 *const 指针变量名 = 初始地址;
eg:
int *const p = &i;
声明一个名为p的指针常量,该指针是指向指向整型数据的常指针 可以改变*p 或p[] 所指的常量(即p 所指地址中的数据,),但是不能改变p 的值(地址)
Ⅱ、指向常量的指针(修饰指针指向的对象)
定义格式:(可不初始化)
const 类型名 *指针变量名
OR
类型名 const *指针变量名
eg:
const char *p = "abc";
声明一个名为p的指针变量,它指向一个字符型常量
【注】:字符串的地址就是字符串首个元素的地址,或者是字符串名(即本身)
不允许改变*p 或p[] 所指的常量(即再次对指针赋值),但是可以改变p 所指的的地址
- 变量的地址可以赋值给指向常量的指针(即指向常量的指针可以指向变量),但常量的地址不能赋值给指向变量的指针(指向变量的指针不能指向常量)字符变量例外
内联函数(本质上是一种空间换时间)
如同const 一样,内联函数也是来替代宏函数的位置的
- 内联函数省去了函数调用的开销, 提高运算速度
- C++的函数机制既具有宏代码的效率,又增加了安全性,而且可以自由操作类的数据成员
- C++中应该用内联函数取代所有的宏代码
格式表达:
inline 返回类型 (函数名)(参数表)(函数体)
eg:
inline double circle(double r)
{return 3.14*r*r;}
【注】: 1、内联函数内一般不含复杂的控制语句,如for或while语句 2.、规模小,5句以内
|