C++ 第七章笔记 编程模块
函数原型:
为什么需要:
可以让编译器对不同的C++程序进行独立编译。
编译器正确处理函数返回值。
编译器检查使用的参数数目是否正确。
编译器检查使用的参数类型是否正确,如果不正确则尝试转换。
提高编译效率。
函数的参数
接收传递值得变量称为形参
传递给函数的值称为实参
在参数中 int *arr 和 int arr[] 代表的含义是一样的
其中像函数传数组 如果在函数中对数组进行更改原数组的内容 也会改变 因为传过来的是指向数组的指针
为防止函数无意间对指针进行修改 可以用const关键字
C++禁止将const的地址 赋值给非const得指针
尽可能使用const
这样可以避免由于无意间修改数据而导致的编译错误;
使用const使得函数能够处理const和非const实参,否则将只能接受非const数据。
如果条件允许,则应将指针形参声明为指向const的指针。
int age = 39;
const int *pt = &age; //不允许用pt修改age的值但是允许更改pt指向的变量
int *const finger =&age; //不允许用finger修改age的值也不允许更改pt指向的变量
int data3 = {{1,2,3,4},{9,8,7,6},{2,4,6,8}};
如果要将data这个二维数组传给函数则使用以下定义
int sum(int(*ar2)[4],int size);
int sum(int ar2[][4],int size);
两种意义完全一样但是第二种可读性更好。
ar2r = ((ar2+r)+c); //先取第一个下标的数组 然后再取第一个元素的值。