首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C编程 - 检查空字符串但返回奇怪的数字

C编程 - 检查空字符串但返回奇怪的数字
EN

Stack Overflow用户
提问于 2018-12-13 05:39:43
回答 2查看 0关注 0票数 0

我正在测试一个C程序来检查字符串中的字符数。但是当 我尝试使用“”(空字符串)进行测试时,该函数返回一个奇怪的值。 功能

代码语言:javascript
复制
int getStringLength(char*str)
{
   if (str == 0 || str == "") // if input NULL or "" should return 0
   {
     return 0;
   }
}

函数调用

代码语言:javascript
复制
void test_StringLength_a_give_an_empty_string_expect_0(void)
{
TEST_ASSERT_EQUAL(0, getStringLength("")); // (expected value, value return from function)
}

输出我得到 输出的截图

我的问题是为什么

代码语言:javascript
复制
    if(str == "")

会导致函数返回这样奇怪的数字吗?

EN

Stack Overflow用户

发布于 2018-12-13 15:03:57

==在C中不执行字符串相等,它比较原始指针值,因此它比较char*strchar*""。C不会自动处理字符串,因此具有相同值的字符串不一定具有相同的内存地址。编译器可以为两个单独的字符串文字赋予相同的地址,但这也不能保证。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档