strlen與pow易錯點

2021-08-19 20:15:02 字數 1609 閱讀 4368

string.h

strlen()

作用:返回字元陣列的長度

錯誤例子:

#include #include #include int main(int argc, char const *argv)

結果顯示為:

顯示結果:

答案:

strlen所作的僅僅是乙個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃瞄,直到碰到第乙個字串結束符』\0』為止,然後返回計數器值(長度不包含』\0』)。

而我們的陣列ch並沒有進行初始化,因此就可能會出現這樣的問題。因此我們把**進行修改:

int main(int argc, char const *argv)

執行結果:

作用:求指數冪

錯誤例子:

#include #include int main(int argc, char const *argv)

return 0;

}

顯示結果:

double pow (double base     , double exponent);

float pow (float base , float exponent);

long double pow (long double base, long double exponent);

double pow (double base , int exponent);

long double pow (long double base, int exponent);

可以看出,在c++98中,不論是輸出還是輸入,底數和返回值都不存在int型別(雖然在c++11中出現了過載選項,沒試過不清楚),所以在用pow函式的時候,即使是對整數為底求整數次冪,也建議大家都用double型別。

修改一下,正確寫法之一為下:

int main(int argc, char const *argv)

return 0;

}

C語言 strlen 函式易錯點

strlen函式解析 include include includeint main void int len2 strlen c2 printf len2 d n len2 error.len2 9 char c3 int len3 strlen c3 printf len3 d n len3 l...

C語言 strlen 函式易錯點

code class cpp strlen函式解析 include include include int main void int len2 strlen c2 printf len2 d n len2 error.len2 9 char c3 int len3 strlen c3 printf...

面試易錯點

一 char str1 abc char str2 abc char str3 abc char str4 abc str1和str2是不相同的,str3和 str4是相同的,str1和str2是儲存在堆上,str3和 str4在常量區,這兩個指標指向的是同一位址 編譯器認為p1指向的 abc 和p...