外贸怎么做公司网站,wordpress 制作网站模板,网页微博怎么进超话,wordpress 统计字数目录 一、函数的概念二、调用函数的两个前提三、函数传参的三种形式四、函数返回类型 一、函数的概念
函数是C程序的基本模块#xff0c;通常一个C程序由一个或多个函数组成。函数可以完成用户指定的任务#xff0c;一般分为库函数和用户自定义的函数。函数由函数头和函数体… 目录 一、函数的概念二、调用函数的两个前提三、函数传参的三种形式四、函数返回类型 一、函数的概念
函数是C程序的基本模块通常一个C程序由一个或多个函数组成。函数可以完成用户指定的任务一般分为库函数和用户自定义的函数。函数由函数头和函数体组成函数头中包含了函数的函数名、返回类型和参数列表函数体则描述了函数执行任务的过程和结果。
二、调用函数的两个前提
首先需要函数声明编译器需要根据函数声明来判断调用函数的使用是否正确。其次需要函数定义编译器判断调用函数的使用无误之后会停止当前函数的运行进入被调函数的定义执行被调函数然后返回原函数继续往下执行。
三、函数传参的三种形式
在C中函数有三种传参方式值传递、指针传递和引用传递。
1. 值传递 值传递时形参的改变不会影响实参。因为形参和实参是两个变量它们都有自己的内存空间只是存储的值相同。
2. 指针传递 指针传递时形参的改变可以影响实参。虽然形参和实参依旧是两个变量但是形参存储了实参的地址指向实参可以通过解引用运算符*对实参的值进行修改。如果不想让实参被改变可以添加const限定符。
3. 引用传递 引用传递时形参的改变一定影响实参。因为实参和形参是一个变量形参只是实参的别名。如果不想让形参改变可以添加const限定符。
下面通过一个交换两个数的代码来对上面三种形式做出直观的说明
// 函数声明
void Swap1(int a, int b); // 值传递
void Swap2(int* a, int* b); // 指针传递
void Swap3(int a, int b); // 引用传递int main()
{int a 10, b 5;// 交换a和bSwap1(a, b);cout 值传递: a a , b b endl;Swap2(a, b);cout 指针传递: a a , b b endl;Swap3(a, b);cout 引用传递: a a , b b endl;return 0;
}// 函数定义
void Swap1(int a, int b) // 值传递
{int temp b;b a;a temp;
}
void Swap2(int* a, int* b) // 指针传递
{int temp *b;*b *a;*a temp;
}
void Swap3(int a, int b) // 引用传递
{int temp b;b a;a temp;
}运行结果如下 可以看到值传递并没有交换a和b因为它只是交换了a和b的副本。指针传递通过解引用操作找到了原函数的a和b然后进行交换。引用传递使用的就是原函数的a和b本身。这里点到为止只需要知道函数有三种传参方法和如何使用这三种方法就可以了。
四、函数返回类型
作者认为函数返回类型可以分为四种无返回void、返回值、返回指针和返回引用。 无返回类型就是调用函数结束没有返回值给原函数。而返回值是返回被调函数中变量的临时拷贝使用完后丢弃。返回指针和引用可以在原函数中使用被调函数的变量。注意 不能返回被调函数中定义的局部变量的指针或引用函数调用结束后该变量被销毁其内存空间被操作系统回收。如果通过返回的指针或引用去访问这块空间会造成非法访问。