|
发表于 2009-5-12 22:58:47
|
显示全部楼层
Post by cczy;1985866
我写了这样一个程序:
#include <stdio.h>
int main()
{
const int a=2;
int *p;
p=&a;
printf("%d,a=%d\n",*p,a);
(*p)++;
printf("%d.a=%d\n",*p,a);
return 0;
}
用 gcc -Wall -o t1 t1.c
编译后,结果为:
2,a=2
3,a=3
然而用 gcc -Wall -O -o t1 t1.c
编译后,结果确为:
2,a=2
3,a=2
请问一下,这倒底是谁的错呀?
编译器应该告诉你这句有问题了吧 |
|