传递给函数时int值的变化

时间:2014-04-05 02:49:58

标签: c

我将int传递给我的跛脚程序中的函数。它传入一个数字,将其转换为二进制表示形式为int数组。

typedef int bool;

bool* conv2bin(int num)
{
    blah blah blah return binary as bool array
}

我传入78并且如果我在传入后立即打印(),我得到781237412753-124?

我是C的新手(来自C ++)所以请告诉我,我是否做了一些非常愚蠢的事情?

这看起来应该很容易,但它不是......?

编辑:

我做过傻瓜:

printf("%d", num);

编辑2: 它必须与int有关,因为在函数结束时,它会检查我们是否足够减去数字以达到num == 0,但它表示我们不是0。它正在做非常奇怪的事情。它还说二进制文件是0000000001001111,它应该是0000000001001110。

编辑3:

哇,我很糟糕。谢谢Floris!这是漫长的一天。

1 个答案:

答案 0 :(得分:2)

在这里猜猜...... 您的打印输出以正确的两位数字开头:78

但是如果你没有在格式化字符串的末尾包含\n,那么你打印的下一个内容将被连接起来。接下来就是下一件事。

我怀疑当您将print语句更改为

时,您的问题将会消失
printf("%d\n", num);