今天遇到一个奇怪的事,为什么下面这段代码在Windows的Devc++中编译不用过,报错误,而在Ubuntu上就能编译通过,只报了两个警告,并且a,b的值还交换成功了, t = *p 不应该是不合法格式吗?
#include <stdio.h>
void swap(int *p, int *q)
{
int *t;
t = *p;
*p = *q;
*q = t;
}
int main(int argc, const char *argv[])
{
int a = 1;
int b = 2;
swap(&a, &b);
printf("a = %d, b = %d\n", a, b);
return 0;
}
Windows的Devc++报错内容:
Ubuntu的编译运行结果: