天天看点

const指针和指向const的指针

举个例子说下:

int i=39;

const int *p=&i,表示不能通过指针p来改变i的值,*p=20//错,p=&j//正确 

int *const p=&i,表示p只能指向i,不能指向其他变量,但是可以通过p来改变i的值.*p=30//正确,但是p=&j//错 

const int *const p=&i,表示p只能指向i,并且不能通过p来改变i的值 *p=20//错误,p=&j//错误。

第一种可以理解为,p是一个指针,它指向的内容是const int 类型。p本身不用初始化它可以指向任何标示符,但它指向的内容是不能被改变的。

第二种可以理解为,p是一个指针,这个指针是指向int 的const指针。它指向的值是可以被改变的如*p=3。

继续阅读