C語言指標基本操作

2022-01-10 22:31:07 字數 2063 閱讀 1335

指標如果說c語言最有魅力的地方在哪,那麼毋庸置疑,非指標莫屬了。

眾所周知,c語言中每個變數都有乙個記憶體位址,可以通過&進行訪問。指標是乙個變數,它的值是乙個變數的記憶體位址【注意是記憶體位址】。

指標表示式:

type *var-name;

//其中type代表c語言的資料型別,例如:int,double,char,float

指標宣告

指標進行宣告時,=的右邊必須為記憶體位址,不可以是變數(但是int*p=0;除外,該語句表示指標為空)

指標初始化

在初始化指標的時候,如果暫時不需要賦值,可以將值賦值為null,可稱為空指標。ps: *不賦值null也行,不過賦值null是一種好習慣,但是如果定義指標陣列,大可不必這樣。

首先先介紹一下指標最基本最基本的使用

#include

void

main

()

輸出結果是:

指標訪問值:10

ps:(nil)就代表空的意思,不同的編譯器顯示不同。

可以簡單的理解為:

如果在*p中,p代表乙個記憶體位址,而這個記憶體位址中儲存了乙個值,那麼使用*可以將這個值取出來,則*p就代表這個記憶體位址中的值。

例如:

#include

void

main

()

執行結果:

結果是:10

簡單點來說,指標跟陣列沒有半毛錢關係。只是說,經常將指標和陣列拿過來共同使用,於是乎,兩者便有了點關係。

指標陣列

指標陣列定義與陣列定義類似

int a[10];//定義乙個陣列

int *p[10];//定義乙個指標陣列

使用案例:

#include

void

main();

int *p[3]; //此時不要寫成 int *p[3] =null;

for(int i =0;i<3;i++)

for(int j=0;j<3;j++)

}

執行結果:

第0個值是10

第1個值是20

第2個值是30

指標與陣列

首先先說一下指標運算

指標運算有點奇葩,和平常的有點不一樣。假設ptr是乙個指向int32位整數型別的指標,所指的位址是100,那麼執行

ptr++

所得到結果是ptr將指向104

對指標進行自加自減的操作,所加或者所減的值會根據資料型別而不同,可知,char型別的指標自加自減的值為1

指標指向陣列

int var=;

int *p = null;

//將p指向陣列的首個元素位址

p = var;

//等價於

p = &var[0];

指標和陣列

#include

void

main();

int *p;

p = var; //也可寫做 p = &var[0];

for(int i = 0;i<3;i++)

}

執行結果

p所指向的值:10

p所指向的值:20

p所指向的值:30

c語言 指標的基本操作

include intmain int ptr1,ptr2,ptr3 ptr1 urn 把乙個位址賦給指標 ptr2 urn 2 printf pointer value,dereferenced pointer,pointer address n printf ptr1 p,ptr1 d,ptr1...

C語言有關指標的種基本操作

賦值 assignment 通常使用陣列名或位址運算子 把乙個位址賦給指標。求值 value finding 或取值 dereferencing 運用 取出指標指向位址中儲存的數值。將乙個整數加給指標 減法同理 可以使用 運算子來把乙個整數加給乙個指標,或者把乙個指標加給乙個整數。兩種情況下,這個整...

c語言指標的基本使用

指標 pointer 是c語言中乙個重點和難點,以下是對其基本使用的一些總結,適合入門的同學。除了是對自己的學習的總結之外,也希望能對大家有所幫助。與c語言其他變數類似,指標也是一種變數,只不過它與其他變數不同,一般變數是直接包含了乙個特定的值,而指標是包含了乙個變數的值所在的位址,也就是說,指標儲...