關於C語言指標的理解

2021-07-09 04:06:43 字數 723 閱讀 1727

// 三者的區別

char *s = "hello world!";

char s = "hello world!";

char s[5];

這個相當於建立了乙個指標變數s,指標變數s指向常量「helloworld」。

指標變數s位於棧中,字串」hello world!」位於常量區;

相當於const char *s = 「hello world!」;

所以不能通過s來改變字串」hello world!」的內容。但是s指向的位址可以改變。如:

s[2] = 「a」; √

s = 「hi world!」; ×

這個相當於建立了乙個普通陣列s,位於棧區,str陣列裡面的內容可以改變,但是str指向的位址是固定的,不能改變。陣列的初始化時必須確定大小。

相當於char * const s = 「hello world!」;

s[2] = 「a」; √

s = 「hi world!」; ×

這個相當於建立了乙個普通陣列s,位於棧區,無內容,但陣列大小確定。

相當於char * const s[5];

s[2] = 「a」; √

s = 「hi world!」; ×

C語言指標的理解

什麼是指標?指標也是一種變數,存放的是某塊記憶體的位址。我們知道,記憶體可以理解為是按位元組被分割成若干塊的,每一位元組都對應著乙個編號,並且這些編號從小到大依次排列,這個編號就是它的位址,獨一無二,而指標變數中的值就是這些編號 例如如下 的結果 include include int main 這...

C語言指標的理解

include intmain int p1 2 p2 2 p3,p4,p5 宣告2個陣列指標,和3個普通指標 p1 arr 記住p1是陣列指標,是指向陣列的 printf d n p1 0 輸出陣列裡的第乙個元素 p1 指標自增,自增按陣列單位自增,這裡看成一維陣列的話,乙個陣列單位就是3,相當於...

C語言 指標的理解

要理解c語言 中指標的意思,最好的方法就是畫表。先從最簡單的 開始,用畫表來分析。例1 include studio.h intmain void 可以這樣畫表 因為0x1000位址裡存放的變數a是int型別,所以指向變數a的指標型別是int 同理,如果變數a的型別是unsigned char,則指...