一、C回顾
1. 变量
局部变量:局部变量是在函数中定义的临时变量,作用域是从变量的定义处开始,到函数结尾。
静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,但静态局部变量只对定义自己的函数体可见。
外部变量:外部变量是在函数外部定义的全局变量,作用域从变量的定义处开始,到本程序文件的结尾。
有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。
也可用static声明外部变量,使该变量不能被其他文件引用。
2. 函数
参数—传值调用
即参数可以看作是便于初始化的局部变量。
void swap(int a,int b)//传值
{
int temp;
temp=a;
a=b;
b=temp;
}
在main函数中调用swap(a,b)不能真正改变main函数中a,b的值;
一种方式是将a,b定义为全局变量,另一种方式是通过传递指针(指针即保存变量地址的变量)实现。
void swap(int* a,int* b)//传指针
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
在main函数中调用swap(&a,&b)传递变量a,b的指针。
对于数组参数,f( int *a ) 等效于 f( int a[] ) ,而函数调用时,f( a ) 同样等效于f( &a[0] )
其他,活用struct、enum、typedef、条件编译等。
二、C++概述
1、标准输出流cin与标准输出流cout
2、结构、枚举名可以直接作为类型名,不必再前面冠以关键字
3、const修饰符可以取代#define来定义常量(C语言中const定义了不可修改的变量)
4、内联函数(inline),插入内联函数代码,用实参代替形参(用空间换时间)
5、带有默认参数的函数,以及允许函数的重载
6、运算符new、delete
7、引用 int &j=i; 变量i和引用j占用内存的同一个地址
引用作为函数参数:
void swap(int &a,int &b)//引用
{
int temp;
temp=a;
a=b;
b=temp;
}
在main函数中调用swap(a,b)即可,与传递指针效果类似,不过避免了复杂的指针操作。
引用返回函数值:
可以将函数放在赋值运算符左边。