const在前,内容不能变;

const在后,指针不能变;

const* ,指针指向为常量;

*const ,指针本身为常量。

例如:

(1)const int*p1:表示不能通过指针p1修改它指向的内存单元的值,但是p1本身可修改。

(2)int const*p2=&i:与p1相同,即不能修改p2指向的内存单元的值,但是可以修改p2使其指向其它的内存单元。这里p2指向了整型变量i

(3)p2=&j:修改p2,使其指向整型变量 j ,由(2)可知(3)没错。

(4)int *const p3=&i:p3本身是指向整型变量的常指针,即p3初始化后不能再指向其它的内存单元,但是可以修改p3指向的内存单元的值。这里p3指向了整型变量i。

(5)*p3=20:通过p3将变量i的值修改为2,由(4)可知(5)没错。

(6)*p2=30:通过p2修改它所指向的内存单元的值,由(2)可知(6)错误。

(7)p3=&j:修改p3,使其指向j,由(4)可知(7)错误。

results matching ""

    No results matching ""