一样的程序用VS2008和VC6.0输出的结果为什么不一样
同样的程序用VS2008和VC6.0输出的结果为什么不一样?
贴代码,很短的,大家来帮帮忙啊:
#include "stdio.h"
int main(){
char a[]="abcdefg",b[8],*pa;
int i,n;
pa=a;n=0;
for(i=0;*(pa+i)!='\0';i++){
if(i%2==0)
b[n++]=*(pa++);
}
b[n]='\0';
printf("%s\n",b);
}
VS2008输出:abcde
VC6.0 输出:abcd
帮帮忙找找问题 ,谢谢啊
------解决方案--------------------
b[n++]=*(pa++);这句貌似是未定义的。b[n++]的解释依赖编译器
------解决方案--------------------
http://bbs.****.net/topics/370153775
------解决方案--------------------
那你就写上2种编译器下运行结果呗。
贴代码,很短的,大家来帮帮忙啊:
#include "stdio.h"
int main(){
char a[]="abcdefg",b[8],*pa;
int i,n;
pa=a;n=0;
for(i=0;*(pa+i)!='\0';i++){
if(i%2==0)
b[n++]=*(pa++);
}
b[n]='\0';
printf("%s\n",b);
}
VS2008输出:abcde
VC6.0 输出:abcd
帮帮忙找找问题 ,谢谢啊
VC
vs2008
printf
不同
相同
------解决方案--------------------
b[n++]=*(pa++);这句貌似是未定义的。b[n++]的解释依赖编译器
------解决方案--------------------
http://bbs.****.net/topics/370153775
------解决方案--------------------
那你就写上2种编译器下运行结果呗。