关于C语言的两个基础问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:21:57
1.if (!a[i])是什么意思?
2.
int i, thou, hun, ten, data, j;
thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
for (i=0; i<300; i++)
if (thou-hun-ten-data > 0)
{
b[cnt] = a[i];
cnt++;
}


int i, thou, hun, ten, data, j;
for (i=0; i<300; i++)
{
thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
if (thou-hun-ten-data > 0)
{
b[cnt] = a[i];
cnt++;
}
}
上面两个一样吗?

if(!a[i]) 相当于 if(a[i]==0)

两个不一样,下面那个判断了 a[0] 到 a[299] ,而上面那个只能判断一种情况,循环根本没有用。而且可能不能正常运行。因为好像i没有初始化,会引起数组下标越界。

1.if (!a[i])是什么意思?
!a[i]的值可能为0,也可能为非0.if (!a[i])如果!a[i]的值为非0时,则......
2.
结果是一样的,但显然第一个比第二个的效率高.