欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

為什么C語言中string==string會出現(xiàn)奇怪的結(jié)果?

傅智翔2年前15瀏覽0評論

1. 字符串的存儲方式

在C語言中,字符串是以字符數(shù)組的形式存儲的。例如,字符串“hello”可以表示為一個字符數(shù)組char str[] = {'h', 'e', 'l', 'l', 'o', '\0'}。其中,一個字符“\0”表示字符串的結(jié)束符。

2. “==”比較的是地址

在C語言中,使用“==”比較兩個字符串時,實際上比較的是兩個字符數(shù)組的地址。例如,下面的代碼

char str1[] = "hello";

char str2[] = "hello";

if(str1 == str2){tf");

}else{tf");

輸出的結(jié)果是“str1 != str2”。這是因為str1和str2雖然存儲的字符串內(nèi)容相同,但它們的地址不同,因此“==”比較的結(jié)果為false。

3. 解決方法ptpstst char s2)。該函數(shù)比較字符串s1和s2的內(nèi)容,如果相同返回0,否則返回非零值。

例如,下面的代碼

char str1[] = "hello";

char str2[] = "hello";p(str1, str2) == 0){tf");

}else{tf");

輸出的結(jié)果是“str1 == str2”。

4. 總結(jié)p()函數(shù)。