c中函数和main之间的变量

时间:2014-08-07 23:16:18

标签: c function variables

我正在编写代码,我在c代码的顶部声明了全局变量。然后在main函数中我使用random来为这些变量设置随机值。然后代码调用外部函数对这些值进行数学运算。但是在此函数中,所有变量都显示为零。有没有办法传递这些变量?

伪代码(但代码如何设置)

// Header
int A, B;
main() {
    A = (rand() % 14000);
    B = (rand() % 14000);
    // other things
    math_func Printf("%d %d", A, B);
    Return
}

math_func() {
    A + B;
    A* B;
    A / B;
}

现在看来,在math_func中A和B似乎为0 ......任何想法都值得赞赏。

2 个答案:

答案 0 :(得分:0)

math_func() {
    A+B;
    A*B;
    A/B;
}

这三个陈述没有效果。 例如,您希望使用此代码实现什么目标?

A+B;

此表达式保持A不变。 您想要更改A值吗?如果是这样,您应该使用A = A+B;A += B;。 与其他两个陈述相同。使用+=*=/=运营商。

答案 1 :(得分:0)

这是纯粹的推测,但似乎您期望printf以某种方式打印math_func()内的语句结果。

如果您希望这些陈述的结果在main()中可见,那么您必须将这些陈述分配给某些变量并在main()中打印出变量。

#include <stdio.h>
#include <stdlib.h>


int A, B;
int C, D, E;
void math_func();
main() {
    A = (rand() % 14000);
    B = (rand() % 14000);
    // other things
    printf("%d %d\n", A, B);
    math_func();
    printf("%d %d %d\n", C, D, E);
}

void math_func() {
    C = A + B;
    D = A* B;
    E = A / B;
}

或者,如果您想向自己证明AB在函数内部不为零,那么只需在其中放入一个print语句。

void math_func() {
    printf("%d %d\n", A, B);
    C = A + B;
    D = A* B;
    E = A / B;
}