关于const的几种用法

江枫思渺然 提交于 2020-02-23 04:59:28

const用来修饰的变量时,变量为只读变量其值不能改变,除了修饰普通变量,还可以修饰指针变量,函数形参。另外,修饰一个变量时,const int iint const i是等效的。即const修饰符和变量类型关键词顺序可以互换。

1.const修饰指针时。

    int a=9;
	int * const p0=&a;
	int const *p1=&a;
	const int *p2=&a;

	p0++;   //错误,p0是常量,值不能改变
    (*p0)++;  //正确,*p值可以改变

	p1++;     //正确,p1值可以改变
	(*p1)++; //错误,(*p1)是常量,值不能改变

    p2++;     //正确,p2值可以改变
	(*p1)++;  //错误,(*p2)是常量,值不能改变

2.修饰函数形参时,形参的值在函数内不能被改变。

void fun(const int tmp)
{
  tmp++;    //错误,tmp前有const修饰,其值不能改变
  printf("tmp=%d",tmp);
}

void fun(int tmp)
{
  tmp++;    //正确,tmp前无const修饰,其值可改变。
  printf("tmp=%d",tmp);
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!