四個型別的字串返回值操作效能比較

2021-05-25 15:00:45 字數 791 閱讀 3814

情景如下:

第一種是拷貝返回,呼叫時候直接使用。

第二種是拷貝返回,呼叫時候先取出來賦值給另外乙個變數,再操作。

第三種是,引用返回,呼叫的時候直接使用。

第四種是,引用返回,賦值後再操作。

總的程式:

結果返回:

test1   test2   test3   test4

0.81    0.612   0.603   0.48

3.316   0.597   0.578   0.482

0.805   0.599   0.572   0.505

0.804   0.574   0.549   0.446

0.8     0.572   0.607   0.479

0.808   0.655   0.569   1.677

0.805   0.649   0.576   0.483

0.806   0.603   0.568   0.48

0.836   0.724   0.574   0.486

0.797   0.593   0.574   0.479

0.808   0.594   0.577   0.483

結論:1、拷貝返回,因為返回的時候要進行拷貝操作所以要比引用返回消耗的時間多。

2、如果乙個函式是拷貝返回的時候,先把這個值賦出來,再用新的變數操作,比每次直接呼叫效能要高。因為這樣只有一次拷貝,多次使用,特別是使用頻率高的時候。

3、引用返回,因為沒有拷貝操作,所以效能比較好。不過,引用返回的,不需要再去賦值,賦值後效能反而下降了。

返回值 文件字串

一 返回值 1 返回值就是函式執行以後返回的結果 可以通過return 來指定函式的返回值 可以直接使用函式的返回值,也可以通過乙個變數來接收函式的返回值 deffn return 後面跟什麼值,函式就會返回什麼值 return 後面可以跟任意的物件,返回值甚至可以時乙個函式 return 100 ...

字串函式返回值問題

strnlen s 首字元是null,返回0,其他情況,返回實際長度 不包括 0 或第二個引數值 strcpy s,strcat s 成功返回0 不成功有得編譯器非零,我的編譯器程式崩潰 scanf s,成功返回1,失敗返回0 strcmp,根據兩個字串大小,分別返回大於等於小於0的數 strchr...

四個執行緒交替列印字串

於leetcode1195 編寫乙個可以從 1 到 n 輸出代表這個數字的字串的程式,但是 如果這個數字可以被 3 整除,輸出 fizz 如果這個數字可以被 5 整除,輸出 buzz 如果這個數字可以同時被 3 和 5 整除,輸出 fizzbuzz 例如,當 n 15,輸出 1,2,fizz,4,b...