Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 1.29 KB

18.数组内部存储细节.md

File metadata and controls

40 lines (29 loc) · 1.29 KB

数组内部存储细节

  • 存储方式:
  • 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码值的二进制形式存储的,而非上述的形式。

最后,如果有任何疑问,请加微信 leader_fengy 拉你进学习交流群。

开源不易,码字不易,如果觉得有价值,欢迎分享支持。