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...