c++ - strcmp
迷茫
迷茫 2017-04-17 15:03:10
0
2
587
char a[2] = { '1','2' };
printf("%d", strcmp(a, "12"));

结果为 1

一个没有结束符,一个有结束符,为什么没有的比有的大?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
小葫芦

char 一般當作無符號整數,a[2]是個隨機值,只有大於0 和 等於0 兩種情況。

多數時候,a[2]大於'

小葫芦

與之前一個問題類似——那個問題,我的答案還被吃瓜群眾踩了一腳——字符串是字符串,字符數組是字符數組。 strcmp 函數需要你傳入的是字串,因為只有字串才有

char a[] = {'1', '2', 'rrreee'};
printf("%d", strcmp(a, "12"));
你得到的結果其實不是 1,而是一個隨機值。因為 strcmp 函數並不知道

的長度,它對記憶體進行了越界存取。 a

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!