(1)C/C++中,很容易因误用指针而犯错误,请考虑以下代码,它的目的是在链表的前面插入一个元素:
bool insertInFront(IntElement *head, int data){ IntElement *newElem=new IntElement; if(!newElem) return false; newElem->data=data; head=newElem; return ture; }
前面的代码是不正确的,因为它只更新了头指针的“本地拷贝”.正确的版本是传入一个头元素指针的指针:
bool insertInFront(IntElement **head, int data){ IntElement *newElem=new IntElement; if(!newElem) return false; newElem->data=data; *head=newElem; return ture; }
(2)char *const chrPtr,它不能改为指向内存中的另一位置,但可以用来修改它所指向的内存中的内容;
const char *chrPtr,它可以用来指向不同的内存地址,但不能用来修改所指向位置的内容。