C和C++语言学习总结(二)
4、函数参数传递
C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递.
"值传递"的示例程序.由于Func1 函数体内的x 是外部变量n 的一份拷贝,
改变x 的值不会影响n, 所以n 的值仍然是0.
void Func1(int x)
{
x = x + 10;
}
…
int n = 0;
Func1(n);
cout < < "n = " < < n < < endl; // n = 0
"指针传递"的示例程序.由于Func2 函数体内的x 是指向外部变量n 的指
针,改变该指针的内容将导致n 的值改变,所以n 的值成为10.
void Func2(int *x)
{
(* x) = (* x) + 10;
}
…
int n = 0;
Func2(&n);
cout < < "n = " < < n < < endl; // n = 10
"引用传递"的示例程序.由于Func3 函数体内的x 是外部变量n 的引用,x
和n 是同一个东西,改变x 等于改变n,所以n 的值成为10.
void Func3(int &x)
{
x = x + 10;
}
…
int n = 0;
Func3(n);
cout < < "n = " < < n < < endl; // n = 10
内存分配方式
分配方式 变量类型 分配特点
静态存储区域分配 全局变量,static 变量 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.
栈分配 函数内局部变量 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.
堆分配(亦称动态内存分配) new ,malloc分配 用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存.
- 上一篇:学点 C 语言(3): 转义字符
- 下一篇:C和C++语言学习总结(一)