c - 简单的 C 程序不会返回数字的平方

标签 c

来自教科书的超基础 C 程序。

想要返回 valA 的平方。

int squarer(int valA) {
    return valA * valA;
 }

int main(int argc, const char * argv[])
{
    int valA = 5;
    squarer(valA);
    printf("\"%d\" squared is \"%d\".\n", valA, squarer);
    return 0;
 }

代码打印 "5"squared is "3824". 到控制台。

最佳答案

您刚刚打印了squarer 函数的地址。如果您在启用警告的情况下进行编译(-Wall 或类似的),编译器会告诉您这一点。

调用 squarer 的结果没有存储在任何地方:你只是把它扔掉了。

如果你写

int result = squarer(valA);
printf("\"%d\" squared is \"%d\".\n", valA, result);

你会看到正确的答案。

关于c - 简单的 C 程序不会返回数字的平方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000848/

相关文章:

c - 使用指针时的意外行为和编译器错误

c - GCC 具有优化级别的堆栈保护功能

C 程序 - printf 与其他 printf 字符重叠

c - 尝试计算 C 中的字符、单词和行数

c - 可变大小栈帧的汇编(关于局部变量的栈)

C编程,如何防止puts写入控制台?

c - 将指针分配给指针时,我收到警告 : assignment makes integer from pointer

c - #if 将 undefined symbol 常量假定为 0 是标准的吗?

c - Cuda 中的算法

c - STM32CubeF7 BSP LCD尝试