空指標 引用 KMP

2021-10-13 17:15:53 字數 2568 閱讀 4625

nullter和null的區別:

#if

0#include

using namespace std;

//#define null((void*)0)

//在c語言中,null通常被定義以上

int *a =

null

;char *pc =

null

;//在c語言中,把空指標賦給int和char時,發生了強制型別轉換

//因為c++時強制型語言,void*不能隱式轉換為其他型別的指標所以編譯器對頭檔案做了想i也能夠的處理

#ifdef __cplusplus

#define null

0#else

#define null((

void*)

0)#endif

//在c++中,null實際為0;

//用null代替0表示空指標在函式過載時會出現問題

void

func

(void

* i)

void

func

(int i)

void

main

(int argc, char* ar**)

#endif // 0

引用

#if

0#include

using namespace std;

//函式預設引數

int func

(int a, int b =

20, int c =30)

//注意事項:

//如果某個為止已經有了預設引數,那麼這個位置往後,從左到右都必須有預設值

//int func2(int a, int b = 10, int c)

int func3

(int a =

10, int b =10)

;int func3

(int a =

10, int b =10)

int main()

//int func3(int a, int b)

//void

showvalue

(const int &val)

int main()

#endif

#if

0#include

using namespace std;

int &

test01()

int &

test02()

int main()

void

myswap

(int a, int b)

void

myswap01

(int *a,int * b)

void

myswap02

(int &a,int &b)

int main()

int main()

#endif // 0

樸素演算法和kmp:

演算法的基本思想:從主串s的第pos個字元起和模式的第乙個字元比較,若相等,則繼續逐個往後比較字元;否則從主串的下乙個字元起再重新和模式的字元比較。以此類推,直至模式t中的每個字元依次和主串s中的乙個連續字串行相等,則稱匹配成功,函式值為和模式t中的第乙個字元相等的字元在主串s中的序號,否則陳匹配不成功,函式值為零。

記一下那個next[j]和那個繼續改進的那個,書本82頁;

#include

#include

using namespace std;

#define maxlen

255typedef struct

sstring;

int index_bf

(sstring s

, sstring t

, int pos)

else

if(j >

t.length)

return i -

t.length;

else}}

//kmp

void

get_nextval

(sstring t

, int nextval)

else j = nextval[j];}

}void

get_next

(sstring t

, int next)

; int j =0;

while

(i <

t.length)

else}}

int index_kmp

(sstring s

, sstring t

, int pos,int *next,int *nextval)

else

if(j >

t.length)

return i -

t.length;

else}}

int main()

#endif // 0;

空指標解引用會崩潰

bool dosomething nserror err err nserrorerrorwithdomain 123 code 101userinfo nil returnyes 如果呼叫方不關心錯誤輸出放回,這樣呼叫會崩潰,self dosomething nil 所以在解引用之前要判斷一下if...

空指標(NULL pointer)解引用避免方法

什麼是解引用空指標?c語言中,如果乙個指標變數的值為null,解引用這個指標時,會導致程式崩潰 segmentation fault 如何防止解引用空指標?基本思路是在解引用指標前,先判斷是否為null,如果是null則不要解引用。但是c語言程式中,指標的使用非常多,在每次解引用之前都做判斷是非常低...

C語言 傳指標和解引用,野指標和空指標

乙個函式的改變要影響另乙個函式需要兩個條件 1 傳指標。2 解引用。通過交換a和b數值的例項來說明其重要性 在主函式中輸入a和b的值 int a 10 int b 20 預期輸出結果為a 20 b 10。明顯與預期結果不符。原因 沒有傳指標!具體操作為 也與預期結果不符。原因 沒有解引用。與預期相符...