我参加了一个非常基本的初学者编程课程,专注于C ++。我们目前正在学习有关成员变量和局部变量的知识。为此,我编写了这个非常简单的程序,看看当声明一个局部变量但是未初始化时的输出是什么,并给出与已经初始化的成员变量相同的名称
0
我的期望是我会得到一些非常大的随机数的垃圾输出。相反,输出为Sub Macro2()
'
' Macro2 Macro
'
'
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim str As String
str1 = "URL;https://www.census.gov/construction/bps/txt/tb3u"
str2 = "201601"
str3 = ".txt"
str = str1 & str2 & str3
With ActiveSheet.QueryTables.Add(Connection:= _
str, Destination _
:=Range("$A$2"))
.Name = "tb3u201601_4"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
。这有什么特别的原因?我使用Xcode,如果这有所不同。
答案 0 :(得分:3)
官方说这是未定义的行为。但是有些环境会将内存归零。而其他人会将其未初始化。你可以依靠的一件事是在所有环境中表现不一样(例如,visual studio,gcc等)