andalousie 发表于 2015-1-29 14:27:14

求助一个问题(关于类型转换)

本帖最后由 andalousie 于 2015-1-29 14:43 编辑

我在编程的时候遇到一个问题#include <iostream>
#include <cstdlib>

int do_constant(char *ptr)
{
   char *endp;
   *(unsigned long *)ptr = strtoul(ptr, (char **)&endp, 2);
   return *(unsigned long *)ptr;
}

int main()
{
   char *buff = "1111";
   std::cout << do_constant(buff) << std::endl;
   system("pause");
}
为什么不能输出15?同样的程序在8进制、16进制时就能运行,是为什么?

night2008 发表于 2015-1-29 17:01:53

应该没有问题的,你跑出来的结果是多少

andalousie 发表于 2015-1-29 17:25:22

night2008 发表于 2015-1-29 17:01
应该没有问题的,你跑出来的结果是多少

多谢,我已经解决了。
页: [1]
查看完整版本: 求助一个问题(关于类型转换)