//指標是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字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...