int *p;*p=new int数组;及int *p;p=new int数组;这两个有什么区别吗?

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

在单片机程序设计中我们经常會用到const这个关键字,在有些单片机的编译器中可能会是code(比如51系列单片机)但我们在学习C语言的时候,首先还是先学到的const我们知道,const关鍵字的含义是"常量的,常数的不变的"意思。我们最初学到的是cont int a = 5;或者const unsigned char array[5] = array[5]这种方式因为我们都知道,我们要把大数组定义到const所指向的存储空間中在单片机里我姑且把这片空间称为ROM空间。既然是ROM空间那肯定就是只读空间了,因为单片机的RAM空间少得可怜。我们知道C语言最伟大嘚地方,就是设计了指针指针可以指向任何地方。在初学指针的时候老师就教我们int *p;p是一个指向int类型的指针变量,如果我们定义了int a = 8; 如果p = &a;那么我把*p = 10;变量a的值也跟着变成10原因我们都知道,因为P指向了a,p里存放的是a的地址而*号的意思是取值(内容),*p变了a当然会变了。在对const 、指针有了初步的了解后我们就可以理解const int *p了,当然也有写成int const *p的其实都是一样的。怎么理解呢?我这里也是跟别人学到的说是,要看const修飾的谁比如前面的const int a,const修饰的是 a,所以a是一个常值变量只会在程序初始化时赋值一次,以后不管怎么搞都不会变化的对于const int *p,const 修饰的是  *p,我们知道,P是指向int类型的指针变量,*p是指向的变量的内容(值),加上const修饰后是不是可以理解*p是一个常值呢,所以说是指向常值变量,换句话說是一个指向ROM空间的指针变量我们在定义const int *p;这种变量的时候,就是为了指向ROM空间指向一个存常值的空间。这里有些用词可能不太专业准确。但这里需要注意对于ROM空间,不是说只能通过定义const int*p;去访问这里只是向读者说明,const int *p;是一个指向ROM空间的指针变量

理解了const int *p;我们再来理解┅下int * const p,还是根据前面的模式去理解,const 修饰的是p而p是一个指针,所以int * const p,定义的p是一个指针常量,这个指什是固定的只在初始化的时候赋給它一次,以后就不能乱指了不像const int*p,P是可变的

这里通过两个实例来说一下,两者的区别:

我要回帖

更多关于 new int 的文章

 

随机推荐