1、指向常量的指針,防止通過指針去修改變量的值,而不管變量是否我const
int x =3;
const int *pc = &x;
*pc = 888;
printf("x=%d\n",x);
2、指向常量的指針,該指針可以指向別的變量,指針的value是可以更改的;
pc = &bb ; //可以
3、指向常量的指針,不能賦值給一個普通的指針;
定義基本類型的const變量 const在哪都可以;
const Int x=2,y=3;
定義一個非const變量;
int z =3;
定義一個指向常量的指針;。。常指針!!!保護指針不被修改
const int *pc = &x;
定義一個常指針;
int *const cp = &z;
定義一個非const 指針
int *pp = &z;
z=y; //const 變量只能做右值,不能做左值
x = y x是const變量,所以x的值是不可修改的
pc = &z;//pc是指向常量的指針,不能通過該指針修改指針所指的內存空間的值
//但是,該指針可以指向別的變量;
*pc = 10;//this is false because this *pc 是一個指向常量的指針;
*pc = y;//同上;
pc = pp;//pc是一個指向常量的指針。pp是一個普通的指針,用一個普通的
// 指針給一個指向常量的指針賦值是可以的;
pp = pc;//用一個指向常量的指針賦值給一個普通指針 ;不可以;
//如果可以,那麼就可以通過普通指針去修改內存空間的值了,
z= 5;給一個非const的變量賦值
z= x;//const 給非const 去賦值也是可以的額!!!!
*cp = x;//通過常指針去修改指針指向變量的值,原則上來講是可以的;
//如果指向的變量是const的,那麼不同編譯會有不同的結果;
cp = &x;//常指針 指針的值不能被修改。給常指針的地址錯誤的
int swap (const int*)保護內存區域不被修改
pp = &x;//可以。,非const指針;!!!!!!!!!!!!!
const char* str;;//指向常量的指針;指針是不可修改內容,但是是可以被讀取的
不能賦值給一個普通指針;