C语言比较两个字符串相等的问题,请人详细讲解

发布网友

我来回答

2个回答

热心网友

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

热心网友

后者比较的只是他的首地址,首地址是存放字符串的首地址,是一个整形,是一个无法预知的地址,能比较的对吗?。。srecmp函数是自带的比较函数。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com