指標字串和陣列指標

2021-09-30 04:46:38 字數 1472 閱讀 6985

//指標是c語言的精髓,只有掌握好指標才算是真正學會了c語言,以下就是學習指標的例子

#include

main()

;int n=5;

sort(name,n);

print(name,n);

if(strcmp1(name[0],name[1])>0)

printf("%s,%s/n",name[0],name[1]);

if(strcmp1(name[2],name[3])<0)

printf("%s,%s/n",name[2],name[3]);

printf("that is ok!/n");

getch();

return 0;

}int strcmp1(char *str1,char *str2)

return f;

}/*  

本功能是比較字串大小的函式,該函式運用指標實現,原因是指標可以直接管理記憶體,

此外減少對儲存空間的開銷,因為指標之間指向實參,而不用重新為傳過來的形參進行

空間的開銷。

現在說明該函式模組的每個語句含義和作用:函式的引數是字元或字串的指標(位址),

實參可以是陣列指標表示的字串,也可以僅僅是字串,總的來說都是字串。一旦傳值給

形參的字串指標變數,該變數指向的是整個字串的首位址,也可以說是第乙個字元的位址,

即指標變數是乙個字元的位址。

根據上面的思路,char **p1,**p2定義了兩個指向位址的位址的變數,用於替代傳進來的

字串便於操作,p1=&str1表示把字串的首位址賦值給指向指標的指標的變數,這下也應該知道

p1表示是位址了。在for語句**現的**p1!='/0'意思是:取出變數的位址裡的值,首先是*(*p1)

括號表示取出變數p1指向的位址值,然後外邊的」*「再取出位址對於儲存的值,這時是值是字元。

如果只是用*p1='/0'的話,那麼它只是表示位址的值,而它的值是不會為空的;但是後面必須用

(*p1)++語句,因為(*p1)表示字串中的乙個字元的位址,括號加上"++"意思指向下乙個字元,

如果用p++或*p++語句,那麼它只是表示位址值簡單的加 1 而已,而不是整型或字元型的乙個位址值,

即不表示下乙個元素。對於if語句中的意思和**p1!='/0'是一樣的。

*/int strcmp2(char *str1,char *str2)

return f;}/*

str1字元指標變數表示字串的單個字元的位址,後面加上」++"表示指向下乙個元素,用下乙個位址值

表示。*str1取出位址的值即單個字元。

*/ void sort(char *name,int n)}}

void print(char *name,int n)

{int i;

char **p;

char *format;

format="%s/n";

for(i=0;i

C 指標和陣列 字元和字串 字元陣列

char ch 24 字元陣列初始化時,如果使用者未顯示新增 0 編譯器會自動加上,以表示字串結束。所以上面的初始化就相當於 char ch 24 除了用上述的方式來初始化乙個字元陣列,還可以用下面的方式 char ch today is a beautiful day char ch char p...

指標陣列,陣列指標,字串與指標

在研究指標陣列與陣列指標的時候,遇到了這個困惑,後面解答。void test02 char c 4 char p2 4 指標陣列 for int j 0 j 4 j for int i 0 i 4 i 指標陣列是陣列,即乙個陣列中,每個元素都是指標 void test05 注意這一行和最後一行的區別...

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...