零代码建站平台,江门网络科技有限公司,贡井区建设局网站,一步步教你做电商网站1 本课主要内容#xff1a; 函数是什么#xff1f;函数的声明、定义和调用#xff1b;函数返回值#xff0c;函数参数#xff0c;参数默认值函数参数不同类型的调用方式#xff1a;传值、指针、数组、常量引用、引用等 2 主要知识点#xff1a; 函数是什么#xff1f; …1 本课主要内容 函数是什么函数的声明、定义和调用函数返回值函数参数参数默认值函数参数不同类型的调用方式传值、指针、数组、常量引用、引用等 2 主要知识点 函数是什么 函数也叫方法就是把实现特定业务功能的一些代码写到一块起一个名称叫函数名方便调用函数可以有可选返回值和 0 到多个的输入参数 如下例子 // 函数例子判断二个数值并返回其中大的数值
int get_max(int a, int b) {if (a b) {return a; }else {return b; }
}// 调用函数
int v1{0};
int v2{0};
...
int value get_max(v1, v2);// 以上 get_max 函数也可写成如下格式
int get_max(int a, int b) {return a b ? a : b; // 判断 a btrue 返回 afalse 返回 b
} 函数声明和实现 函数格式 return_type function_name(parameter_list); return_type返回类型void没有返回类型 function_name函数名称 parameter_list函数参数支持0到多个参数留空或者void没有参数 // 没有返回值没有参数函数例子
void do_something(void)
{...
}
// 或者写成
void do_something()
{...
}// 带参数、返回值函数例子计算 a 和 b 的和返回计算结果
int add_number(int a, int b)
{return ab;
} 调用函数
// 普通函数
void do_something()
{...
}
// 带参数、返回值函数
int add_number(int a, int b)
{return ab; // 返回计算结果
}// 调用普通函数没有返回值没有输入参数
do_something();
// 调用带参数、返回值函数
int value add_number(10, 20); 函数的声明和实现分开写
// 先声明
void do_something(void);// 调用函数
do_something();// 再实现
void do_something(void)
{// ...
}函数参数默认值 函数参数默认值就是当调用函数没有给定参数值的时候使用默认参数值 C 支持函数参数默认值 // 带参数默认值函数
void set_visible(const std::string key, bool visible true);// 调用函数
set_visible(name); // visible参数没有填写默认 visibletrue
set_visible(name, true); // visibletrue
set_visible(name, false); // visiblefalse 函数参数传递指针
// 指针参数例子1指向某个类型的指针
void do_something(int * numberPointer, int mul)
{const int a *numberPointer;std::cout number: a std::endl;*numberPointer a * mul;
}int number 10;
// 调用函数
do_something(number, 2); // 取对象指针
std::cout after number: number std::endl; // 20 函数参数传递数组
// 也可以写成void do_something(int size, float numberArray[])
void do_something(int size, float* numberArray)
{for (int i 0; i size; i) {const float v numberArray[i];std::cout numberArray[ i ] v std::endl;}
}float array1[5] {1.1, 2.2, 3.3, 4.4, 5.5};
// 调用函数
do_something(5, array1);函数参数传递复杂数据类型 非内置复杂数据类型如 std::string, struct结构class类对象等强烈建议使用常量引用传递参数可以避免参数实体拷贝临时变量 // 推荐常量引用参数变量 name 和调用函数是同一个地址
void do_something1(const std::string name)
{std::cout input name: name std::endl;
}
// 不推荐写法非常量引用调用时会拷贝临时参数参数变量 name 和调用函数参数不是同一个地址
void do_something2(std::string name)
{std::cout input name: name std::endl;
}std::string name(Hello World!);
do_something1(name);
do_something2(name);函数参数传递引用 一般引用是用于数据输出 // 传递引用参数
bool do_something3(std::string inOutName)
{std::cout input name : inOutName std::endl;inOutName 2222;// 输出数据return true;
}std::string name(1111);
do_something3(name); // 调用后输出2222
std::cout output name : name std::endl;
3 注意事项 函数返回值需要注意避免返回指向局部变量的引用数据 // **** 以下是错误演示代码不能返回指向局部变量的引用
const std::string get_file_name(const std::string filePath) {std::string fileName(filePath);// ... return fileNme
}
4 课后练习 修改上一节课后练习作业新建一个控制台程序利用 while 指令循环提示用户输入指令分别使用不同函数实现一个命令行用户管理系统具体指令功能如下 add : 新建一个用户需要提示用户输入用户名称delete : 删除最后一个用户list : 列出所有用户名称quit : 退出程序 附录在线视频课程
【C程序员必修第一课】C基础课程