C语言指针在VS中的不同?

前两天使用VS2005Team(盗版)弄C语言的时候,发现指针异常的难用,明明刚设立的变量都没有初始化就不为NULL了。搞得头昏昏的。

 今天重新实验了一遍,又用刚装的VS2008Professional(正版)。请看如下代码:

#include <stdio.h>
struct node
{
	int id;
	struct node *n;
};
struct node *n;
int main(int argc, char *argv[])
{
	if (n==NULL)
	{
		printf("ERROR/n");
	}	
	else
	{
		printf("%d  /n", n->id);
	}
	return 0;
}
在2005和2008里边编译运行的结果均为: ERROR 
但是如果把 7行移动到9行的位置,那么在2005和2008中结果均为:程序遇到问题需要关闭 ........
 如果在刚才的改动基础上,在这一句话前或后加上一句  int a=0;那么在2005种结果为:2025346902(或者其他数)
 在2008中结果为:ERROR。  
 
毕竟不是计算机专业的,对于堆栈始终没有搞明白,而且对于指针一直都有点迷糊。
 本来我就是这样一个人了,偏偏拿到的编译器还这个样子,两个版本不对劲。 
不过现在发现了这个问题,对于之前一直想要解决的那个问题看来有希望了。
 另外,昨天使用2005编译spidermonkey,始终不成功,今天装了2008之后,再用2005编译,又成功了。
昨天最后使用VC6编译成功,但是只能用Debug模式下的,Release下不能用;今天虽然使用2005和2008都编译成功了,但是在命令行下运行作为shell时还好,解析js文件遇到函数就抱错,当然遇到其它东西也可能报错。郁闷。 
还有就是今天装了2008,比2005小很多,发现没有windowsSDK,虽然安装过程中说了装。但是没有找到,不过使用<windows.h>还是没有问题的,不知道怎么回事。
这些东西越来越大、越变越复杂,时代的脚步,到底是谁在走啊?  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值