我已经开始学习C和刚刚获悉,串只是阵列的字符。 我想看看值是在串在每一个特定时刻所以我设置一个断点在vscode,走过的执行,并看了所有的价值观。
int main()
{
char a[4] = "foo";
char b[4] = "bar";
return 0;
}
我看到了,以前的初始化 a[]
阵列,已有数值在存储器。
.
我的问题是,那些是什么价值? 他们为什么在那里? 什么,他们代表什么?
我已经开始学习C和刚刚获悉,串只是阵列的字符。 我想看看值是在串在每一个特定时刻所以我设置一个断点在vscode,走过的执行,并看了所有的价值观。
int main()
{
char a[4] = "foo";
char b[4] = "bar";
return 0;
}
我看到了,以前的初始化 a[]
阵列,已有数值在存储器。
.
我的问题是,那些是什么价值? 他们为什么在那里? 什么,他们代表什么?
当定义的价值,它需要一个部分的存储器可能包含的其他号码。 它基本上是这些数字显示,在你的"调试"标签。
当你第一次申报列或可变的,它分配存储和存储器可能包含一些垃圾值已,所以它打印喜欢这种方式
垃圾的价值 可以是任何东西,语言的标准,不指定它应该是什么
内存存储器,这可能是未初始化(aka充满了垃圾)或它可能已经被初始化了与数据。
在你的情况下,当您的程序跳到你的主要功能一堆的建立是为它会含有你的地方变量(当地变量的炭列声明,基本上是一个指向一些地方在存储器)。 在你之前的初始化所述的指针 a
和 b
要点在你的串,他们可能已经包含任何旧的数字和所以试图阅读"string"在那个地址就会给你更多随机的垃圾。
例如,如果你写的 int a = 5;
在你的程序,并加强通过,你将同样地看到,一个可能含有一些随机的数目之前将其分配5.
在创建一个新的价值等整数或阵列,系统将会给这些价值观的一个地址保存了它的数据在该地址。 可能有一些数据在这个地址用于其他应用程序和关闭之后,应用程序、RAM不会除去他们,所以在初始化时,你会看到这些数据。