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

如题所述

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