有哪位高手能告诉小弟我什么叫做new 和delete吗

有谁能告诉我什么叫做new 和delete吗
我看了这个new和delete,可就是不懂,为什么我用了delete,他还是35呢
#include   <stdio.h>
void   main()
{
        int   *a=new   int;
int   b;
a=&b;
*a=35;
printf( "在delete之前的*a:%d ",*a);
delete   a;
printf( "\n在delete之后的*a:%d ",*a);
}

------解决方案--------------------
你这完全是瞎搞。。。呵呵

#include <stdio.h>
void main()
{
int *a = new int;
int b;

delete a //加这一句,不然会有

a = &b; //将指针指向另一个对象而
//没有释放以前的内存造成内存泄漏
*a = 35; //通过指针改变局部变量b的值使b为35

printf( "在delete之前的*a:%d ",*a);

delete a;//这是a指向的是静态分配的b的地址,
//根本不需要释放空间

printf( "\n在delete之后的*a:%d ",*a);
//即使是动态分配的空间,你释放之后
//指针还是指向原来的地方,只要在这段空间没被占用前
//你继续用指针访问,它的值表面上也是不会变得, 不过
//这很容易导致未定义的行为。。。。
}



------解决方案--------------------
int *a = new int;
*a=100;
delete a ;

printf( "%x,%d ",a,*a); //打印a 的地址和值
a = new int;
printf( "%x,%d ",a,*a);
*a=50;
printf( "%x,%d ",a,*a);
delete a ;
printf( "%x,%d ",a,*a);
//////////////////
这样你应该可以看出问题