你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
int i; int data[5] = {0}; data[0] = i;
if (!data[0]) { ... }
没有找到相关结果
搜洼挂时
int
int i;
荒劫娇噬
int i; int data[5] = {0}; void func1(void) { data[0] = i; } void func2(void) { int i; int data[5] = {0}; data[0] = i; ... }
func1()
data[0]
i
data
func2()
!
!data[0]
if (data[0] == 0) { ... }
淑灯
雄鞋谋塘
={0};
if (!data[x])
if (data[x] == 0)
很缴
凰葱崎济邯
#include <stdio.h> void main() { int i, j , k; printf("i = %i j = %i k = %in", i, j, k); }
> $ gcc a.c > $ ./a.out > i = 32767 j = 0 k = 0
要回复问题请先登录或注册
6 个回复
搜洼挂时
对象没有“默认”值。 如果在函数内部声明
为(非静态)局部变量,则它具有不确定的值。它是未初始化的,在您为其写入有效值之前不能使用它。 在声明任何对象时,明确初始化任何对象都是一个好习惯。
荒劫娇噬
在
中分配给
的值是完全确定的;它必须为零(假设没有其他任务干扰全局变量
和
的值)。 相比之下,
中设定的值完全不确定;您无法可靠地说明将分配给
的值,因为在该功能中没有可靠的值分配给
。它可能是来自某个先前函数调用的堆栈上的值,但这取决于编译器和程序,甚至不是“实现定义”;它是纯粹的未定义行为。 你也问“这是什么意思?”
'
'运算符对其应用的值进行逻辑反演:它将零映射到一,并将任何非零值映射到零。如果表达式求值为非零值,则整体条件的计算结果为true。因此,如果
为0,则
映射为1,并执行块中的代码;如果
不为0,则
映射为0,并且不执行块中的代码。 这是一种常用的习语,因为它比其他选择更简洁:
淑灯
雄鞋谋塘
,整个数组都填充了零。如果这是在任何函数之外定义的,即使没有初始化程序,它也会用零初始化。
相当于
。
很缴
凰葱崎济邯
// 检测结果