入门C语言只需一个星期(星期五)

点击上方"蓝字"关注我们

01、函数声明和定义

int main() {  printf("Hello World!");  return 0;}函数由两部分组成void myFunction() { // 声明 declaration  // 函数体(要执行的代码)(definition)}Declaration 声明函数名称、返回类型和参数 (如果有)Definition 函数体 (要执行的代码)// 函数声明void myFunction();// 主要方法int main() {  myFunction(); // --> 调用函数  return 0;}void myFunction() {// 函数定义  printf("晚上好!");}

02、调用函数

// 创建函数void myFunction() {  printf("晚上好!");}int main() {  myFunction();  // 调用函数  myFunction();  // 可以被多次调用  return 0;}// 输出 -> "晚上好!"// 输出 -> "晚上好!"

03、函数参数

void myFunction(char name[]) {  printf("Hello %s\n", name);}int main() {  myFunction("Liam");  myFunction("Jenny");  return 0;}// Hello Liam// Hello Jenny

04、多个参数

void myFunction(char name[], int age) {  printf("你好 %s 你 %d 岁了。\n",name,age);}int main() {  myFunction("Liam", 3);  myFunction("Jenny", 14);  return 0;}// 你好 Liam 你 3 岁了。// 你好 Jenny 你 14 岁了。

05、返回值

int myFunction(int x) {  return 5 + x;}int main() {  printf("结果: %d", myFunction(3));  return 0;}// 输出 8 (5 + 3)两个参数int myFunction(int x, int y) {  return x + y;}int main() {  printf("结果: %d", myFunction(5, 3));  // 将结果存储在变量中  int result = myFunction(5, 3);  printf("结果 = %d", result);  return 0;}// 结果: 8 (5 + 3)// 结果 = 8 (5 + 3)

06、递归示例

int sum(int k);int main() {  int result = sum(10);  printf("%d", result);  return 0;}int sum(int k) {  if (k > 0) {    return k + sum(k - 1);  } else {    return 0;  }}

07、数学函数

#include <math.h>printf("%f", sqrt(16));   // 平方根printf("%f", ceil(1.4));  // 四舍五入 (入)printf("%f", floor(1.4)); // 四舍五入 (舍)printf("%f", pow(4, 3));  // x(4)的y(3)次方
  • abs(x) 绝对值

  • acos(x) 反余弦值

  • asin(x) 反正弦值

  • atan(x) 反正切

  • cbrt(x) 立方根

  • cos(x) 余弦

  • exp(x) Ex 的值

  • sin(x) x 的正弦值

  • tan(x) 角度的正切

总结

知识回顾

入门C语言只需一个星期(星期一)
入门C语言只需一个星期(星期二)
入门C语言只需一个星期(星期三)
入门C语言只需一个星期(星期四)
#include<stdio.h>// 静态函数(static function)static void static_func() {    printf("这是一个静态函数。");}// 常量函数(const function)const void const_func() {    printf("这是一个常量函数。");}// 内联函数(inline function)inline void inline_func() {    printf("这是一个内联函数。");}int main() {    static_func();    const_func();    inline_func();    return 0;}

1. 静态函数(static function):使用 static 关键字修饰的函数,其作用范围仅限于定义它的源文件。这意味着在其他源文件中无法访问这个函数。静态函数在内存中只有一份副本,不会被多个源文件中的同名函数所干扰。

2. 常量函数(const function):使用 const 关键字修饰的函数,表示该函数不会修改任何外部变量的值。这有助于提高代码的可读性和安全性。但是,这并不意味着函数内部不能调用其他非const函数。

3. 内联函数(inline function):使用 inline 关键字修饰的函数,编译器会尽量将函数调用替换为函数体的代码,以减少函数调用的开销。内联函数通常用于简单的函数,以提高程序的执行效率。需要注意的是,编译器并不一定会将内联函数真正地内联,它会根据实际情况决定是否进行内联优化。

### 指针函数举例

假设我们有一个函数 `add`,它接受两个整数作为参数并返回它们的和。我们可以定义一个指针函数 `create_add_func`,它返回一个指向 `add` 函数的指针。这样,我们就可以在运行时动态地创建指向 `add` 函数的指针。

```c#include<iostream>int add(int a, int b) {    return a + b;}// 定义一个指针函数,它返回一个指向 add 函数的指针typedef int (*AddFuncPtr)(int, int);AddFuncPtr create_add_func() {    return add;}int main() {    AddFuncPtr add_func_ptr = create_add_func();    int result = add_func_ptr(3, 4);    std::cout << "Result: "<< result<< std::endl; // 输出:Result: 7    return 0;}```

在上面的代码中,我们首先定义了一个名为 `add` 的函数,它接受两个整数作为参数并返回它们的和。然后,我们定义了一个名为 `create_add_func` 的指针函数,它返回一个指向 `add` 函数的指针。在 `main` 函数中,我们调用 `create_add_func` 函数来获取指向 `add` 函数的指针,并使用该指针调用 `add` 函数来计算 3 和 4 的和。

### 函数指针举例

假设我们有一个函数 `print_sum`,它接受两个整数作为参数并打印它们的和。我们可以定义一个函数指针变量 `sum_func`,并将 `print_sum` 函数的地址赋值给它。这样,我们就可以通过 `sum_func` 调用 `print_sum` 函数。

```c#include<iostream>void print_sum(int a, int b) {    std::cout << a << " + " << b << " = " << a + b<< std::endl;}
// 定义一个函数指针类型,它指向一个接受两个整数并打印它们的和的函数typedef void (*SumFuncPtr)(int, int);int main() {    SumFuncPtr sum_func = print_sum;    sum_func(3, 4); // 输出:3 + 4 = 7    return 0;}```

在上面的代码中,我们首先定义了一个名为 `print_sum` 的函数,它接受两个整数作为参数并打印它们的和。然后,我们定义了一个名为 `sum_func` 的函数指针变量,并将 `print_sum` 函数的地址赋值给它。在 `main` 函数中,我们通过 `sum_func` 调用 `print_sum` 函数来打印 3 和 4 的和。

故我在

点击下方卡片 关注我

↓↓↓

Qt历险记

一名技术分享师,分享方向:->Qt(C/C++、linux、STM32、MySql/Sqlite3、TCP/UDP),设计方面->Ai、PS、visio、AD、Protues。 

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qt历险记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值