const关键字

1 const来定义常量

使用const定义常量并不安全,可以被指针所修改,因此采用define来定义常亮是更好的选择

#include<stdio.h>
int main()
{
  const int a = 10;
  int *p = &a;
  *p = 20;
  return 0;
}

2 const关键字修饰指针 

int const * p

int a = 10;
int b = 20;
const int *p = &a
p = &b //OK
*p = b //error

可以改变p,不能改变*p

 

const int* p

int a = 10;
int b = 20;
const int *p = &a
p = &b //OK
*p = b //error

  可以改变p不能改变*p

int * const p

int a = 10;
int b = 30;
int * const p = &a;
p = b; //error
*p  = b;//OK

 可以改变*p,不能改变p。

 

const int * const p

int a = 10;
int b = 20;
const int * const p = &a;
p = &b;//error
*p =b //error

 都不能改

 

总结:const和指针连接时,根据const的右边结合,如 const *P就是*p不能改,const p就是p不能改。const常常用来限制内容为只读