网站建设属于什么科目,深圳疫情最新消息,住房和城乡建设部网站职责,制做网站首先应该怎么做问题 
常量指针和指针常量有什么区别#xff1f; 
const的优点 
在C中#xff0c;关键字const用来只读一个变量或对象#xff0c;它有以下几个优点#xff1a; 
便于类型检查#xff0c;如函数的函数 func(const int a) 中a的值不允许变#xff0c;这样便于保护实参。功能…问题 
常量指针和指针常量有什么区别 
const的优点 
在C中关键字const用来只读一个变量或对象它有以下几个优点 
便于类型检查如函数的函数 func(const int a) 中a的值不允许变这样便于保护实参。功能类似于宏定义方便参数的修改和调整。如 const int max  100节省空间如果再定义a  max,bmax…等就不用在为max分配空间了而用宏定义的话就一直进行宏替换并为变量分配空间为函数重载提供参考即可以添加const进行重载。 
常量指针和指针常量的区别 
首先要区分常量指针和指针常量分别是什么这里有一种很好的记忆方法 
指针*和常量const谁在前先读谁  象征着地址const象征着内容谁在前面谁就不允许改变。* 
int a  1;  
int b  2;  
int c  3;  
int const *p1  b;		// const在前p1为常量指针
int *const p2  c;		// * 在前p2为指针常量
//注意允许将非const对象的地址赋给指向const对象的指针所以第4行代码是正确的常量指针p1即指向const对象的指针指向的地址可以改变但其指向的内容即对象的值不可以改变。 
//p1可以改变但不能通过p1修改其指向的对象即 b的值不过通过其他方式修改b的值是允许的
p1  a;	//正确p1是常量指针可以指向新的地址(即a)即p1本身可以改变
*p1  a;	//错误*p1是指针p1指向对象的值不可以改变因此不能对*p重新赋值指针常量p2指针本身是常量即指向的地址本身不可以改变但内容即对象的值可以改变。 
p2  a;	//错误p2是指针常量本身不可以改变因此将a的地址赋给p2是错误的
*p2  a;	//正确p2指向的对象允许改变**补充**要分辨是常量指针还是指针常量可以从右向左来看其定义具体如下 
①对于 int const *p1b先将*和p1结合即p1首先是一个指针然后再左结合const即常量指针它指向了const对象因此我们不能改变 *p1的值。 
②对于 int *const p2c现将const和p2结合即p2首先是一个常量然后再左结合*即指针常量它本身是一个常量因此我们不能改变p2本身。另外因为p2本身是const而const必须初始化因此p2在定义时必须初始化即不能直接 int *const p2; 
参考资料 
常量指针和指针常量的区别详解 
《C Primer》