第07天C语言(01):数组-内存存储细节

一、概念
/*
 变量
    变量在内存中的存储
    由于变量的内存寻址是从大到小,所以存储数据时 会从高字节开始存储
 
 数组
  注意 : 数组的存储 和 变量有点不一样, 数组存储元素, 是从所占用的低字节开始
  其实 数组名 就是 数组的地址

 */
二、代码
#include <stdio.h>
int main()
{
    // 变量在内存中的存储
    // 由于变量的内存寻址是从大到小,所以存储数据时 会从高字节开始存储
    int num = 10; // 0000 0000 0000 0000 0000 0000 0000 0000 1010
    
    // 注意 : 数组的存储 和 变量有点不一样, 数组存储元素, 是从所占用的低字节开始
    char charValues[4] = {'l','y','h','p'};
    /*
     charValues[0] = 0x7fff5fbff7e4
     charValues[1] = 0x7fff5fbff7e5
     charValues[2] = 0x7fff5fbff7e6
     charValues[3] = 0x7fff5fbff7e7
     */
    printf("charValues[0] = %p\n",&charValues[0]);
    printf("charValues[1] = %p\n",&charValues[1]);
    printf("charValues[2] = %p\n",&charValues[2]);
    printf("charValues[3] = %p\n",&charValues[3]);
    
    // &charValues == &charValues[0] == charValues
    printf("charValues = %p\n",&charValues);
    // 其实 数组名 就是 数组的地址
    printf("charValues = %p\n",charValues);

    // 0000 0000 0000 0000 0000 0000 0000 0101
    // 0000 0000 0000 0000 0000 0000 0000 1000

    int nums[2] = {5,8};
    printf("nums[0] = %p\n",&nums[0]);
    printf("nums[1] = %p\n",&nums[1]);

    return 0;
}
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容