1、定义函数和函数调用:
1.1、定义函数:
可以将函数分为两类,没有返回值的函数,和有返回值得函数,没有返回值得函数被称为void函数,其通用格式如下:
1 void funtionname (parameterlist) 2 { 3 statement(s); 4 return;//可选的 5 6 }
其中parameterlist指定了传递给函数的类型和数量,
又返回值得函数的通用格式为:
1 typeName funtionname(parameterList) 2 { 3 statements; 4 return value;//返回值得数据类型与 typeName的类型一样 5 }
1.2、函数调用
调用函数必须在调用它的程序之前,对函数有一个定义,并且要提供函数的原型。调用函数时,要按照,函数的参数顺序,与参数的类型,对函数进行传参。
1.3、数参数和按值传递
在函数中声明的变量(包括参数)是该函数私有的,在函数被调用时,计算机将为这些变量分配内存,在函数结束时,计算机将会释放这些变量的内存(有些C++文献将分配内存称为创建和毁坏变量)这样的变量称为局部变量,因为他们被限制在函数中,,这样有助于确保数据的完整性
2、函数与数组:
int sum_arr(int arr[],int n)//arr = 数组名,n=size
arr是一个指针,但在编写函数的其余部分的时候,可以将arr看作是数组
1 #include <iostream> 2 const int ArSize = 8; 3 int sum_arr(int arr[],int n);//声明函数 4 int main() 5 { 6 using namespace std; 7 int cookies[ArSize] = {1,2,4,8,18,32,64,128}; 8 int sum = sum_arr(cookies,ArSize); 9 cout<<"Total cookies eaten:"<<sum<<" "; 10 return 0; 11 12 } 13 14 int sum_arr(int arr[],int n) 15 { 16 int total = 0; 17 for (int i=0;i<n;i++) 18 total = total +arr[i]; 19 return total; 20 }
程序输出为:
Total cookies eaten:255
将数组地址作为参数可以节省赋值整个数组所需要的时间和内存,如果数组很大,则使用拷贝的系统开销将非常大,程序不仅需要更多的计算机内存,还需要花费时间来赋值大块的数据。
使用函数区间的函数(类似于Python中的切片)
将C风格字符串作为参数传给函数;
(1).char数组
(2)用引号括起来的字符串常量
(3)被设置为字符串的地址的char指针