首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据类型的存储位置和表示

数据类型的存储位置和表示
EN

Stack Overflow用户
提问于 2013-10-21 10:04:44
回答 4查看 165关注 0票数 0

我试图找出在声明变量时基本数据类型存储在哪里,以及基本数据类型的二进制表示是什么。下面是一些从数组之外获取数据的代码。根据我如何声明数组YoMammy[];YoMammy[]或unsigned,最后一行的输出会有所不同。我知道这是正常的,但我不知道基本数据类型存储在哪里。此信息是否与指针一起存储?我知道数组只是引用指针的另一种方式。

代码语言:javascript
复制
int main()
{
    unsigned int YoMammy[2]={3,7};

    cout<<YoMammy[0];
    cout<<endl;
    cout<<YoMammy[1];
    cout<<endl;
    cout<<YoMammy[2];

    return 0;
}
EN

回答 4

Stack Overflow用户

发布于 2013-10-21 10:12:16

访问超出数组范围的元素会导致未定义的行为。你可能会像YoMammy[2]一样得到一些值,你可能会得到一个分段错误,或者发生一些奇怪的事情。

我知道数组只是引用指针的另一种方式。

啊不。在许多情况下,数组名称会转换为指向其第一个元素的指针。但是数组不是指针。

此外,您还可以将调用链接到std::cout,这将使您的工作更轻松:

代码语言:javascript
复制
std::cout << YoMammy[0] << std::endl << YoMammy[1] << std::endl << YoMammy[2];
票数 0
EN

Stack Overflow用户

发布于 2013-10-21 10:12:59

逻辑意义上的阵列是物理意义上的存储。这意味着它是一个位置,有几个街区。int would = i=[9]是该名称的一个插槽。而阵列在同一位置array=[][][][][][][][]中有多个插槽

票数 0
EN

Stack Overflow用户

发布于 2013-10-21 10:13:15

在C++中没有存储描述简单数据类型的元数据。您正在观察有符号整数和无符号整数之间的某种关系,这只是一种巧合。

这就是未定义的行为。它可能会显示出一种模式,但它并未定义。不要试图定义没有定义的行为。=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19485194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档