常量指標與指標常量的區別

2021-07-11 16:51:05 字數 1212 閱讀 5432

一、區別:
區分是常量指標還是指標常量,關鍵要看const修飾的是誰。int const與const int表達的意思是一樣的。
常量指標:本質是指標,並且這個指標是乙個指向常量的指標,

指標指向的變數的值不可通過該指標修改。

其格式為:int const * p或者 const int* p
指標常量:本質是乙個常量,並且使用

指標來修飾它,那麼說明這個常量的值應該是乙個指標。

其格式應為:int * const p

二、demo:
int a,b;
const int *p = &a;//常量指標    *p不可修改 *p = 8;(error)
p 可以修改 p = &b  (ok)
int a;
int * const p = &a    //指標常量,*p可以修改*p = 8;(ok)
p不可以修改 p++(error)
三、應用:

在使用字串處理函式的時候,它們的引數一般宣告為常量指標。例如,字串比較函式的宣告是這樣的:

int strcmp(const char *str1, const char *str2);

可是這個函式卻可以接收非常量字串。

例如:

char *str1, *str2;

str1 = "abcde1234";

str2 = "bcde";

if(strcmp(str1, str2) == 0)

四、指向常量的指標常量
const int a = 25;

const int * const b = &a;

常量指標與指標常量的區別

const 常量 指標 const int p int const p 常量指標 int const p 指標常量 常量指標通常指向常量,不能通過指標去修改常量的值。有時也會指向變數,eg int s 10 const int p s 但還是不能通過指標去修改指向的常量的值,可以通過 s 20,去修...

常量指標與指標常量的區別

這個老是容易搞混,以前很清楚,但過一段時間不用,又忘了,因此今天整理成部落格,以備以後查詢。const char 型別的指標 指向常量的指標 其所指向的內容為常量,是不可以修改的,但其指標值是可以修改的。例如 char str hello 定義乙個字元陣列 const char pstr str 把...

指標常量與常量指標的區別

指標常量是乙個常量,常量不可修改,而指標常量就是這個指標不可被修改 比如陣列名就是乙個指標常量 int a 2 int b 2 a b 報錯,陣列名是乙個指標常量,該指標不能被修改,賦值 a 2 不報錯,a代表a指標所指向的內容,該內容不是常量,可被修改常量指標是乙個指標,該指標指向乙個常量,指向的...