字串與指標,陣列的關係與用途

2021-09-02 05:25:53 字數 1154 閱讀 8298

1.對於字串可以由字元陣列來儲存

例如: char a=「hello」

2.字串用指標來表示

char *p=「hello」;

這只能代表字串的首位址給了指標p3.

3.這樣對於陣列與指標,可實現對於字串的位元組的計算,以及對於字串的字元交換,逆序輸出

3.1字串的位元組計算

**如下:

include

int main()

3.2字串的位元組交換

可由下列**實現:

#include

int main()

j=i-1;

i=0;

while(i#include

int main()

j=i-1;

for(i=0;a[i]!=』\0』;i++,j–)

printf("%s",b);

return 0;

}4.訪問字串也是由陣列與指標實現的

4.1陣列實現訪問

陣列可以兩種訪問法:1.下標法 2.位址法

訪問的偽**如下:

char a=「hello」;

int i;

for(i=0;i輸出函式可實現對於其中的字串的特定字元的訪問。

4.2指標實現訪問字串

指標訪問也有兩種方法:1.下標法 2.位址法

訪問的偽**如下:

char *p=「hello」;//把字串首位址賦給了指標p;

int i;

for(i=0;i5.當然了對於通過陣列,指標對於字串進行初始化後進行再賦值存在著不同。

例如:char *a=「hello」;

char a[100]=「hello」;

int i=2;

5.1對於陣列就可以進行: a[2]=『q』

那是因為對於最初陣列的初始化,a是個陣列,是在棧區申請的乙個空間,並且把這空間給了a,然後把唯讀區的"hello"進行了一次複製再給了a,這樣a的指向就能修改。即是a[2]='q』是正確的。

5.2對於指標而言 a[2]='q』在編譯中會出現錯誤。

那是因為對於指標最初的對字串的初始化,hello的位址給了指標a,並且hello儲存在唯讀區,相當於const型別的,內容是不能修改的,此時在進行賦值就是不對的,所以不能通過指針對字串常量進行再賦值。

字串與字元陣列的關係

include stdafx.h int tmain int argc,tchar argv for int i 0 i 10 i printf n n char pname wangguilin 將wangguilin儲存到data的唯讀資料段 只是編譯了首位址 將首位址賦值給了pname for...

字串陣列與指標

思維 於一道題 char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 endl 輸出什麼...

陣列 字串與指標

指標變數既可以指向變數,當然也可以指向陣列元素。就是把陣列元素的位址放入指標變數中。陣列元素的指標就是它的位址。用陣列名做函式引數時,實參和形參對應關係有四種。一是實參形參都用陣列名。二是實參形參都用指標變數。三是實參用指標變數,形參用陣列名。四是實參用陣列名,形參用指標變數。在c語言中,也有兩種方...