检查空字符C++

Check for null character C++

本文关键字:C++ 字符 检查      更新时间:2023-10-16

我正在尝试测试存储在特定内存地址中的值是否为 NULL,我有这个,并且在调试中它将该地址中的字符值显示为"\0"。然而,它总是跳过这个IF语句。

这是正确的语法吗?我已确保地址设置为空。

if (test->address + length == NULL)
{
    ..code..
}

假设address是一个char*指针(或char[]数组),你需要取消引用它才能访问char值。那是

*(test->address + length)

或等效

test->address[length]

如果我理解正确,那么有效的语句将看起来像

if ( *( test->address + length ) == '' )
{
    ..code..
}

if ( test->address[length] == '' )
{
    ..code..
}

提供定义为字符数组或类型 char * 的指针的对象测试>地址类型

当然它会跳过这个if。这是因为指针是算术规则。

  • test->address是指针
  • test->address + lengthtest->address + sizeof(T) * length,其中Taddress的类型。

改变:

if (test->address + length == NULL)
{
    ..code..
}

if (test->address[length] == 0)
{
    ..code..
}