c語言:
int a = 10;
int b = 20;
int const *p1 = &a;
int *const p2 = &b;
//常量指標
//p1 = 8;//常量指標,指標指向的記憶體位址所對應的值不能改變。
p1 = &b;//常量指標,指標指向的記憶體位址可以改變。
//指標常量
//p2 = &b;//指標常量,指標指向的記憶體位址不能改變。
*p2 = 30;//指標常量,指標指向的記憶體位址所對應的值可以改變。
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("*p1 = %d\n", *p1);
printf("*p2 = %d\n", *p2);
objective-c :const nsstring *和nsstring *const p2
const nsstring *p1 = @"hello";//nsstring *p1原為指標變數 前置const定義p1為常量指標
nslog(@"p1 = %@, %p", p1, p1);
p1 = @"test1";//p1指標指向的記憶體位址可以改變
nslog(@"p1 = %@, %p", p1, p1);
nsstring *const p2 = @"world";//後置const定義p1為指標常量
// p2 = @"test2";//報錯,p2指標指向的記憶體位址不可改變
nslog(@"p2 = %@, %p", p2, p2);
objective-c中引用全域性變數時
.h檔案中宣告
extern nsstring * const notification_name;
//extern const nsstring *notification_name;(這樣寫是錯誤的)
.m檔案中定義
nsstring * const tjcnotification_name = @"tjcnotification";
一般聯合使用static和const來定義乙個只能在本檔案中使用的,不能修改的變數。
//這樣定義相對於用#define來定義的話,優點就在於它指定了變數的型別,而#define是不能指定變數的型別的。
static nsstring * const name = "tianheng";
指標常量與常量指標
指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...
常量指標與指標常量
首先,我告訴大家乙個小規則,就是像這樣連著的兩個詞,前面的乙個通常是修飾部分,中心詞是後面乙個詞,怎麼說呢。就像這裡的常量指標和指標常量。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。我再分開細細說明,常量指標,它是乙個指標,什麼樣的指標...
常量指標與指標常量
在c c 面試中經常會考到常量指標和指標常量,對初學者來說經常會分不清楚,參考網路上的資料,重新學習 記錄一下。常量指標 指向常量的指標,即指向的內容為常量,不可更改,但指標自身的值可以修改。常量指標常量 指標指向的內容不可改變,指標本身的值也不能改變。int a 3 int b 4 const i...