C 基于变量初始化状态的逻辑参数
假设我们在某处定义num(局部变量) 然后,如果初始化,则表示:C 基于变量初始化状态的逻辑参数,c,syntax,logic,c99,C,Syntax,Logic,C99,假设我们在某处定义num(局部变量) 然后,如果初始化,则表示: num = 420; 我们做了些什么,如果不做,我们就不做 这在C99/c中是否可能?在手册中找不到它。如果您只是写 num = 420; 然后尝试依赖于这样一个事实:如果num已经初始化,那么不,您不能这样做。 原因是,无论变量是否已初始化,C都不会在运行时的任何位置存储信息。只有编译器在编译时才知道这一点。 检查num==420也不起作用。如果它是一个自动变量,并且尚未初始化,那么它的值是不确定的,如果没有显式初始化,很可
num = 420;
我们做了些什么,如果不做,我们就不做
这在C99/c中是否可能?在手册中找不到它。如果您只是写
num = 420;
然后尝试依赖于这样一个事实:如果num
已经初始化,那么不,您不能这样做。原因是,无论变量是否已初始化,C都不会在运行时的任何位置存储信息。只有编译器在编译时才知道这一点。
检查
num==420也不起作用。如果它是一个自动变量,并且尚未初始化,那么它的值是不确定的,如果没有显式初始化,很可能是420
。在没有初始化的情况下访问该变量仍然是未定义的
您可以做的是根据某些条件进行初始化,例如:
if (cond)
num = 420;
现在,!cond
相当于“num
尚未初始化”。您可以根据该条件依赖任何进一步的代码cond
,并且它仅在cond
为true时执行,这相当于“num
已使用420
初始化”您的操作是否取决于初始化本身或num
的值?您是否询问是否可以通过编程检测变量是否已初始化?如果是这样,答案是否定的。在C语言中,你,程序员,需要跟踪它。@CoolGuy,是的,我就是这样asking@Downvoter关于初始化本身
if (cond)
num = 420;