关于C++的一些细节[五:函数-基础]

  • Post author:
  • Post category:其他


7.函数

7.1 C++默认按值传递函数.

7.2 C++对函数返回值类型有限制,不能是数组,可以是结构和类对象,还有内置基本类型. 不过可以将数组作为结构或类对象组成部分返回.

7.3 通常函数通过将返回值复制到指定的寄存器或内存单元中来将其返回.随后,调用程序将查看内存单元.

7.4 函数原型描述了函数到编译器的接口.  这样做,编译器的效率高. 虽然可以通过扫描函数头来得到相同的信息.

7.5 原型的参数列表中,可以包括变量名,也可以不包括. 其作用相当于占位苻, 因此不必与函数定义中的变量名相同.

7.6 ANSI C 中原型可选函数名后括号为空,意味着: 不指出参数–将在后面定义参数列表.

C++ 原型比选, 仅当与接受可变参数的C函数 (如: printf()) 交互时才需要不指定参数列表, 使用’…’,

如: void say_hi (…);

C++ 函数名后括号内为空与 使用关键字 void 等效. 意味着函数没有参数.

7.7 通常原型自动将被传递的参数强制转换为期望的类型.

7.8 函数和数组

int sum_arr ( int arr[], int size );           int sum_arr ( int * arr, int size );

上面2个原型作用都一样.

**注意: 在函数体内, sizeof(srr) 计算的是指针的大小.所以需要传入数组的个数.

传入的是数组地址的拷贝,arr指向的是原始数组地址,所以能在函数体内修改数组元素.

7.9 用const保护数组. 如: void show_arr ( const int num[], int size );

该声明表明指针num指向的是常量数据,不能用sum 修改该数据.

7.10 指针和const.

^ int a = 3;



版权声明:本文为lao_du原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。