char a[2] = { '1','2' };
printf("%d", strcmp(a, "12"));
结果为 1
一个没有结束符,一个有结束符,为什么没有的比有的大?
高洛峰2017-04-17 15:05:10
與之前一個問題類似——那個問題,我的答案還被吃瓜群眾踩了一腳——字符串是字符串,字符數組是字符數組。 strcmp 函數需要你傳入的是字串,因為只有字串才有
char a[] = {'1', '2', 'rrreee'};
printf("%d", strcmp(a, "12"));
你得到的結果其實不是 1,而是一個隨機值。因為 strcmp 函數並不知道 的長度,它對記憶體進行了越界存取。 a