📜  我们可以在 C 和 C++ 中的表达式左侧使用函数吗?(1)

📅  最后修改于: 2023-12-03 15:09:56.973000             🧑  作者: Mango

可否在 C 和 C++ 中的表达式左侧使用函数?

在 C 和 C++ 中,可以使用函数作为右值表达式,但不能作为左值表达式,因为函数不是一个可修改的位置。

一个右值表达式可以是函数调用、变量、字面量等,但左值表达式必须是一个可以被赋值的变量。

以下是在 C 和 C++ 中使用函数的示例:

int add(int a, int b) {
    return a + b;
}

int main() {
    int x = 1, y = 2;
    int z = add(x, y);  // 函数作为右值表达式
    // int w = add(x, y) + 5;  // 错误:函数不能作为左值表达式
    return 0;
}

需要注意的是,我们可以将函数指针作为左值表达式,因为函数指针是一个指针变量,可以被赋值和修改:

int (*p)(int a, int b);  // 定义一个函数指针
p = add;  // 赋值函数指针
int z = (*p)(x, y);  // 调用函数指针并获取返回值

所以在 C 和 C++ 中,虽然不能在表达式左侧直接使用函数,但可以使用函数指针来完成相同的操作。