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。明顯與預期結果不符。原因 沒有傳指標!具體操作為 也與預期結果不符。原因 沒有解引用。與預期相符...