龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C和C++语言学习总结(二)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
4、函数参数传递 C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递. "值传递"的示例程序.由于Func1 函数体内的x 是外部变量n 的一份拷贝, 改变x 的值不会影

  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 释放内存.

精彩图集

赞助商链接