我有一个字符数组。有些元素已分配,有些则未分配。
我想计算所有未分配的数量,而不询问是否 (!arr[i])
char* arr[500];
.
.
.
for(i=0; i < 500; ++i)
{
if( !arr[i] )
{
counter++;
}
}
但在 C 中做一些像这样的按位魔法
for(i=0; i < 500; ++i)
{
counter += !(arr[i]| 0x00); //this does not work
}
也许问题更普遍:有没有办法通过按位运算将任何指针与 NULL 进行比较。
编辑:不,不使用==
;我知道如何使用 ==
来做到这一点,但我假设编译它时,它与汇编程序中的 if(!arr[i])
没有区别。
最佳答案
for(i=0; i < 500; ++i)
{
counter += arr[i] == NULL;
}
或者甚至...
for(i=0; i < 500; ++i)
{
counter += !arr[i];
}
关于c - 有没有办法用按位检查 char * 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840788/