C++ 基础学习整理II

在指针定义中,一个*只能代表一个指针。

用&操作符可以获取变量的地址,指针变量用于存放地址。

间接引用指针时,可获得由该指针指向的变量内容。

*放在可执行语句中的指针之前,称为间接引用操作符,*放在指针定义中时,称指针定义符。

指针忘了赋值比整型变量忘了赋值危险得多。

指针具有一定类型,它是值为地址的变量,该地址是内存中另一个该类型变量的存储位置。或者说指针式具有某个类型的地址。

只有加法和减法可用于指针运算。

sum += *iptr;

iptr++;

以更有效地处理数组。由于++与*的操作符优先级相同,它们是右结合的,所以括号可以省略。即可表示为:sum += *iptr++;

 

继续阅读

C++ 基础学习整理I

switch后面括号中的表达式 只能是整形、字符型或枚举类型表达式。

一个程序将操作系统非配给内存四个区域:
1. 代码区,存放程序的代码,即程序中的各个函数代码块
2. 全局数据区,存放程序的全局数据和静态数据
3. 堆区,存放程序的动态数据
4. 栈区,存放程序的局部数据,即各个函数中的数据

全局变量定义之前的函数 不知道该变量。

局部变量前面加auto,可以省略,一般不写。

如果局部变量不被显示初始化,那么,其内容是不可预料的。

内联函数 在函数前定义inline,主要是为了节省效率,被生成为内联的函数,编译器看到后会自动为其创建一段代码。

内联函数中,不能含有复杂的结构控制语句,如switch和while。如果内联函数有这些语句,则编译将该函数视同普通函数那样产生函数调用代码。
另外,递归函数(自己调用自己的函数)是不能被用来做内联函数的。
内联函数只适合只有1-5行的小函数。对一个含有许多语句的大函数,函数调用和返回的开销相对来说微不足道,所以也没有必要用内联函数实现。

继续阅读