常量指標與指標常量

2021-09-01 08:08:45 字數 1285 閱讀 4622

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...