【问题描述】
定义宏#define STR “123”
假设有语句 if(STR==“123”)
那么编译可以通过吗,会有什么问题吗?
【自我思考】
个人感觉编译可以通过,看到说字符串比较的时候是指针比较,所以比较会有问题。我了解字符串比较有函数strcmp,但是好像又有人说字符串比较是可以用==号的,所以还是有疑问。
【问题描述】
定义宏#define STR “123”
假设有语句 if(STR==“123”)
那么编译可以通过吗,会有什么问题吗?
【自我思考】
个人感觉编译可以通过,看到说字符串比较的时候是指针比较,所以比较会有问题。我了解字符串比较有函数strcmp,但是好像又有人说字符串比较是可以用==号的,所以还是有疑问。
比较两个字符串的大du小用strcmp函数,这个函数内是依次比较两个字符串的每个字符,一直到遇到不同的字符或某个字符串的结尾为止。
而如果ch1 == ch2这样对比的是两个字符串的首地址是否相同,而不是字符串的内容按照字典序的大小。