2015-07-01 22 views

回答

2

比較結束,詢問兩個陣列arrarr1相對於彼此在內存中的位置。它詢問哪一個有較低的地址。

如果你想包含在兩個數組中的字符串值進行比較,使用STRCMP:

if(strcmp(arr, arr1) <= 0) ... 
1

據我所知推移,arr或事實上任何數組變量存儲地址數組中的第一個元素。所以當你做arr<=arr1時,你實際上是在比較他們的地址。所以就是這樣。

P.S.你可以打印地址,以防萬一你想檢查。如: printf("\n%p", (void*) arr);

從程序的外觀來看,您似乎希望比較兩個字符串。然後您必須這樣做:

if(strcmp(arr,arr1)==0) 
    printf("Entered strings are equal.\n"); 
else 
    printf("Entered strings are not equal.\n"); 
+0

這個'printf(「\ n%d」,arr);'引發UB。要打印數組的地址,因此其1st元素的地址使用'printf(「\ n%p」,(void *)arr);' – alk

+0

注意。謝謝@alk – ikk