未初始化的DWORD变量给出随机值?

Han*_* N. 1 c variables

可能重复:
初始化未初始化的值?

void Encrypt( FileContent *pFile )
{
    /* Get the key total ascii value */
    DWORD asciiKeyValue;

    for (DWORD i=0; i < pFile->keyLength; i++)
    {
        asciiKeyValue += pFile->encKey[i];
    }

    _tprintf(_T("[*]DEBUG The encKey ascii value is: %ld\n"), asciiKeyValue);
}
Run Code Online (Sandbox Code Playgroud)

我得到的放出来430的时候DWORD asciiKeyValue,但一旦DWORD asciiKeyValue = 0230这是理所应当的.

有人对此有解释吗?asciiKeyValue变量是否在未指定显式值时获得随机值?

Ere*_*ith 5

它不会"变得"随机.当你声明DWORD它之前在其地址的内存中有什么.除非您将内存初始化为某些内容(如0),否则不会清除内存.