我试图找出在声明变量时基本数据类型存储在哪里,以及基本数据类型的二进制表示是什么。下面是一些从数组之外获取数据的代码。根据我如何声明数组YoMammy[];YoMammy[]或unsigned,最后一行的输出会有所不同。我知道这是正常的,但我不知道基本数据类型存储在哪里。此信息是否与指针一起存储?我知道数组只是引用指针的另一种方式。
int main()
{
unsigned int YoMammy[2]={3,7};
cout<<YoMammy[0];
cout<<endl;
cout<<YoMammy[1];
cout<<endl;
cout<<YoMammy[2];
return 0;
}发布于 2013-10-21 10:12:16
访问超出数组范围的元素会导致未定义的行为。你可能会像YoMammy[2]一样得到一些值,你可能会得到一个分段错误,或者发生一些奇怪的事情。
我知道数组只是引用指针的另一种方式。
啊不。在许多情况下,数组名称会转换为指向其第一个元素的指针。但是数组不是指针。
此外,您还可以将调用链接到std::cout,这将使您的工作更轻松:
std::cout << YoMammy[0] << std::endl << YoMammy[1] << std::endl << YoMammy[2];发布于 2013-10-21 10:12:59
逻辑意义上的阵列是物理意义上的存储。这意味着它是一个位置,有几个街区。int would = i=[9]是该名称的一个插槽。而阵列在同一位置array=[][][][][][][][]中有多个插槽
发布于 2013-10-21 10:13:15
在C++中没有存储描述简单数据类型的元数据。您正在观察有符号整数和无符号整数之间的某种关系,这只是一种巧合。
这就是未定义的行为。它可能会显示出一种模式,但它并未定义。不要试图定义没有定义的行为。=)
https://stackoverflow.com/questions/19485194
复制相似问题