#include<stdio.h>
void main()
{
unsigned int a=65535;
int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("b=%d,%o,%x,%u\n",b,b,b,b);
}
书上给的结果为a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
可在vc++,tc上面出现了不同的结果,a=65535...
糊涂了,到底是怎么回事啊?高手能和我讲一下吗?谢谢!!!
----------------解决方案--------------------------------------------------------
TC 中的int是16位的
VC中的int是32位的
----------------解决方案--------------------------------------------------------
没学过C++,但是怀疑C++中int型是32位的
还是请会C++的来解释吧
----------------解决方案--------------------------------------------------------
这个根C++好像没有什么关系
----------------解决方案--------------------------------------------------------
VC++不就是C++的可视化编译器么?我想他们的数据类型应该是一样的吧?
我没学过C++,如果有不对的还要多指教
----------------解决方案--------------------------------------------------------
VC对C/C++的数据类型都是一样的,int 32位
你可以在VC中输入如下代码:
#include<iostream>
using namespace std;
int main()
{
cout<< sizeof(int);
getchar();
return 0;
}
他可以证明 int 是32位
----------------解决方案--------------------------------------------------------
unsigned int a=65535
在TC储存形式: 1111111111111111 (16位)
在VC++储存形式:0000000000000000 1111111111111111 (32位)
再想一下.
----------------解决方案--------------------------------------------------------
我在书上(谭好强c语言)找了个程序:
#include<stdio.h>
void main()
{
unsigned int a=65535;
int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("b=%d,%o,%x,%u\n",b,b,b,b);
}
书上给的结果为a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
可在vc++,tc上面出现了不同的结果,a=65535...
糊涂了,到底是怎么回事啊?高手能和我讲一下吗?谢谢!!!
2楼说的没错
等你学到后边你就会发现还有一些区别
比如,TC的++和VC中的++是不一样的
还有VC的实际数组要比你定义的数组多32
比如你定义 int a[100], 可是你赋值的时候可以赋值到a[131]!
多了32位数组!
----------------解决方案--------------------------------------------------------
那就说明我的猜测是对的,我发3楼那贴时还没看到你二楼的话
----------------解决方案--------------------------------------------------------
vc++的运行结果是
a=65535,177777,ffff,65535
b=-2,37777777776,fffffffe,429467294
是这样的?
----------------解决方案--------------------------------------------------------