C语言字符串是一系列字符,也就是char类型排列而成的。
一个字符是char类型,一系列字符如何表示?用他们的第一个字符的地址表示,因为字符串在地址上也是连续排列的。
并且用\0,在物理上是一个字节的全0位,来表示字符串结束。
所以"abcde",空间上是'a'
'b'
'c'
'd'
'e'
'\0'
strcmp的参数都是char*,也就是指向字符的指针,原理是从两个指针指向的地址开始对比,直到其中一个\0为止。判断相等与否。实现上是每个字符相减。
单纯的==,比较的是字符串手地址是否相等,这样比较,不但比较不了两个字符串相等与否,而且要想相等,还必须两个字符串指向同一个地址。
温馨提示:答案为网友推荐,仅供参考