返回介绍

入门

基础

进阶

18. 数组内部存储细节

发布于 2024-10-07 02:37:14 字数 2162 浏览 0 评论 0 收藏 0

数组内部存储细节

  • 存储方式:

  • 1)内存寻址从大到小, 从高地址开辟一块连续没有被使用的内存给数组

  • 2)从分配的连续存储空间中, 地址小的位置开始给每个元素分配空间
  • 3)从每个元素分配的存储空间中, 地址最大的位置开始存储数据
  • 4)用数组名指向整个存储空间最小的地址

  • 示例

#include <stdio.h>
int main()
{
    int num = 9;
    char cs[] = {'l','n','j'};
    printf("cs = %p\n", &cs);       // cs = 0060FEA9
    printf("cs[0] = %p\n", &cs[0]); // cs[0] = 0060FEA9
    printf("cs[1] = %p\n", &cs[1]); // cs[1] = 0060FEAA
    printf("cs[2] = %p\n", &cs[2]); // cs[2] = 0060FEAB

    int nums[] = {2, 6};
    printf("nums = %p\n", &nums);      // nums = 0060FEA0
    printf("nums[0] = %p\n", &nums[0]);// nums[0] = 0060FEA0
    printf("nums[1] = %p\n", &nums[1]);// nums[1] = 0060FEA4

    return 0;
}

  • 注意:字符在内存中是以对应ASCII码值的二进制形式存储的,而非上述的形式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文