C语言如何高效入门?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 C语言 正文

函数调用

这是 最常见的用途,当后面跟着一个函数名时, 就构成了函数调用运算符。

c语言
(图片来源网络,侵删)

作用:

  1. 执行函数:程序会跳转到函数定义的代码块去执行。
  2. 传递参数: 内有表达式(称为实参/arguments),这些表达式的值会被传递给函数。
  3. 接收返回值:如果函数有返回值,函数调用表达式本身就可以被视为一个值,可以赋给变量或用于其他表达式。

示例代码:

#include <stdio.h>
// 1. 函数定义
//    这里的 () 用于声明函数参数
int add(int a, int b) {
    return a + b;
}
// 2. 函数声明
void print_message();
int main() {
    int x = 5, y = 10;
    // 3. 函数调用
    //    这里的 () 是调用运算符
    //    - 传递参数 x 和 y
    //    - 接收返回值 15 并赋给 sum 变量
    int sum = add(x, y);
    printf("The sum is: %d\n", sum); // 输出: The sum is: 15
    // 4. 无参数函数的调用
    print_message();
    return 0;
}
// 函数实现
void print_message() {
    printf("Hello from a function!\n");
}

强制类型转换

当 出现在一个数据类型(如 int, double, float 等)后面时,它用作强制类型转换运算符。

作用: 将紧跟在 后面的表达式的值,临时转换为括号中指定的数据类型,这通常用于避免整数除法或进行精度转换。

c语言
(图片来源网络,侵删)

示例代码:

#include <stdio.h>
int main() {
    int a = 5;
    int b = 2;
    double result;
    // 1. 不使用强制类型转换 (整数除法)
    //    5 / 2 的结果是 2,小数部分被丢弃
    result = a / b;
    printf("Without cast: %d / %d = %f\n", a, b, result); // 输出: Without cast: 5 / 2 = 2.000000
    // 2. 使用强制类型转换
    //    (double)a 将 a 临时转换为 double,5.0 / 2 得到 2.5
    result = (double)a / b;
    printf("With cast: (double)%d / %d = %f\n", a, b, result); // 输出: With cast: (double)5 / 2 = 2.500000
    return 0;
}

改变运算优先级和声明变量

当 紧跟在变量名后面时,它主要用于声明变量,特别是指针和函数指针。

作用:

  1. 声明指针变量: 将 运算符与变量名绑定,而不是与数据类型绑定,这在声明多个指针时非常有用。
  2. 声明函数指针: 是定义函数指针类型语法的核心部分,用于将函数的返回类型和参数列表“封装”成一个类型。

示例代码:

c语言
(图片来源网络,侵删)
#include <stdio.h>
// 一个简单的函数
int add(int x, int y) {
    return x + y;
}
int main() {
    // 1. 声明指针变量
    //    int *p1, p2;  // 错误!p2 是一个整型变量,不是指针。
    //    int *p1, *p2; // 正确!p1 和 p2 都是指向整型的指针。
    // 使用 () 可以更清晰地声明多个指针
    int *p1, *p2; // p1 和 p2 都是指向 int 的指针
    int a = 10, b = 20;
    p1 = &a;
    p2 = &b;
    printf("p1 points to: %d, p2 points to: %d\n", *p1, *p2);
    // 2. 声明函数指针
    //    定义一个函数指针类型,它指向一个接收两个 int 参数并返回 int 的函数
    int (*func_ptr)(int, int);
    // 将函数 add 的地址赋给这个函数指针
    func_ptr = add;
    // 通过函数指针调用函数
    int result = func_ptr(5, 3); // 等价于 add(5, 3)
    printf("Result from function pointer: %d\n", result); // 输出: Result from function pointer: 8
    return 0;
}

用法 语法示例 作用
函数调用 my_function(arg1, arg2); 执行函数,传递参数,接收返回值。
强制类型转换 (double)my_variable; 将表达式的值临时转换为指定类型。
声明/改变优先级 int *p;
int (*func_ptr)(int);
声明指针变量,将 与变量名绑定。
定义函数指针类型。

理解 在不同场景下的不同含义,是掌握 C 语言语法的关键一步,希望这个解释能帮助你更好地理解!

-- 展开阅读全文 --
头像
C语言switch语句如何高效使用?
« 上一篇 04-24
如何安全找回织梦管理员密码?
下一篇 » 04-24
取消
微信二维码
支付宝二维码

目录[+]