指標的魅力

2021-05-28 00:47:56 字數 1174 閱讀 1283

魅力1 演算法之找我的名字——簡單,靈活,快捷

以下演算法功能是在乙個字串中查詢長度為8的乙個字元子串,比如我的名字「zhanhang」就是乙個8長度的字串。演算法解釋:因為字串myname的長度為8,也就是它是乙個8位元組的記憶體連續的陣列,而myname指向這一段記憶體。又long long 指標型別是乙個指向8位元組記憶體的型別,因此就可以將myname轉換成long long 型別指標,如此在進行子串的比較時,就可以直接比較兩個long long 型別的變數即可,免去了對子串進行遍歷的麻煩。詳情請看**。

#include int find_my_name(const char* str, int str_len, const char* myname)

}/**

author:花心龜

blog:

**/

int main()

小結:指標實際上指向一記憶體空間,其記憶體空間的大小由指標型別而定。靈活的應用指標是能夠為程式設計帶來便利的。

(題外語:作者使用此例項旨在通過靈活應用指標的例子,幫助理解指標,並通過理解指標作為本文介紹指標魅力的起點,實際工程中並不贊同此方法,因為本方法存在擴充套件性差,移植性差等問題。)

魅力2 迭代器——高效

「迭代」一詞在漢語裡面是「更替」的意思,也就是說「迭代器」的意思就是指用來做更替操作的工具。例項:實現演算法使乙個字串顛倒順序,實現步驟:構建兩個迭代器p 和 q ,在一次遍歷中,p的位置從字串開頭向中間不斷更替,q從字串末尾向中間不斷更替,

然後每次交換p和q所指向的內容即可,直到p和q在中間相遇,這時迴圈次數剛好等於字串的長度_l/2。

實現**:

void reverse(char *_str,int _l) //反轉函式,_l指要反轉字串的長度

}

我若不用迭代器p和q呢?用兩個變數i和j作為str的下標,也就是說訪問元素的方式變為:str[i],str[j],如下

void reverse(char *_str,int _l) //反轉函式,_l指要反轉字串的長度

}

時方的魅力

自從去年隨方老學習傷寒之後,臨床習慣用經方處理問題,療效自然提高不少,但是臨床並非時方不用,遇到典型的時方方證,大膽投之,效果也是不錯的,細細用經方的思想來品味時方中的經典,也能品出一些經方的味道來。頭痛久治不癒案 曠某 女 35歲 南嶽鎮教師 2009年6月初首診 頭痛達15年之久,初期僅偶發,時...

漢語的魅力

語音是稍縱即逝的,無法穿越時空儲存下來,於是人類發明了文字。這方面中國人做的很到位 魯迅曾說 我國文字有三美,意美以感心,音美以感耳,形美以感目。不是詩卻有詩的韻味 不是畫,卻有畫的美感 它不是舞,卻有舞的節奏 它不是歌卻有歌的旋律。那些來自千年前的浪漫 再沒有其他語言能描繪出那種美 but eve...

工程的魅力

中國自古代開始就湧現出許多波瀾壯闊的浩嘆工程,這些工程無不在向我們展示古人的智慧型與中國古代的文化之美,每一件工程都在散發這他獨特的魅力來吸引著我們。長城資源主要分布在河北 北京 天津 山西 陝西 甘肅 內蒙古 黑龍江 吉林 遼寧 山東 河南 青海 寧夏 新疆等15個省區市。其中河北省境內長度200...