我有一个char数组。分配了一些元素,有些则没有。
我想在不询问(!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])
没有区别。
答案 0 :(得分:3)
for(i=0; i < 500; ++i)
{
counter += arr[i] == NULL;
}
甚至......
for(i=0; i < 500; ++i)
{
counter += !arr[i];
}