C语言编译
如果编译并执行以下c代码,将输出什么C语言编译,c,C,如果编译并执行以下c代码,将输出什么 void main(){ int huge*p=(int huge*)0XC0563331; int huge*q=(int huge*)0xC2551341; *p=200; printf("%d",*q); } 假设您打算写以下内容: #include <stdio.h> int main(void){ int *p=(int *)0XC0563331; int *q=(int *)0xC2551341
void main(){
int huge*p=(int huge*)0XC0563331;
int huge*q=(int huge*)0xC2551341;
*p=200;
printf("%d",*q);
}
假设您打算写以下内容:
#include <stdio.h>
int main(void){
int *p=(int *)0XC0563331;
int *q=(int *)0xC2551341;
*p=200;
printf("%d",*q);
return 0;
}
然后,输出应该是从地址0xC2551341开始存储的任何整数值
我不确定int-thumg应该代表什么;更广泛的整数类型是long int和long-long int或long和long-long。请注意,这些更广泛的类型分别为输出使用%ld和%lld转换说明符。why don;你不检查吗?可能是未定义的行为。然后发布错误消息并解决问题,而不是询问这样的问题。。。是的,坦白说,废话。伙计。一个不可编译的程序怎么会有输出!?还有它未定义的行为。是的,cad。这就是答案。谢谢int MARGE不是有效的AFAIK类型。MARGE与访问当前64Kb段之外地址的16位x86内存访问有关。。它看起来像是来自某个古老编译器的代码,几乎肯定会在现代编译器和操作系统上出现故障。