c使用静态变量查找数字的倍数?

时间:2017-09-06 07:38:11

标签: c function reference static static-variables

#include<stdio.h>

void function(void);


void main (void)
{
    int number;
    printf("call? yes(1) no(-1)");
    scanf("%d", &number);
    while(number>=0)
    {
        function();
        printf("call? yes (1) no (-1)");
        scanf("%d", &number);

    }
}


void function(void)
{
    static int multiple = 2;
    printf("%d", &multiple);
    multiple = multiple*2;

}

这是我的代码,用于找到2乘以数字。我希望它打印2,4,8,16等,但是当我运行此代码时,我得到一些大数字。我刚开始学习c所以任何评论都表示赞赏

2 个答案:

答案 0 :(得分:3)

printf()中,会打印multiple的地址。将printf("%d", &multiple);更改为printf("%d\n", multiple);

答案 1 :(得分:2)

从打印件中删除&

改变这个:

printf("%d", &multiple);

到此:

printf("%d", multiple);

PS:What should main() return in C and C++?