• 数组与指针的一些关系


    本文主要是理解这几个符号的意思a, a[0], &a, &a[0](前提是定义了数组int a[10]);

     

    1、a代表的是数组名,a作左值的时候,表示的数组a[10]的整个内存空间的大小(也就是10*sizeof(int)这么多个字节)。a作右值的时候表示的是数组首元素的首地址,它的值和&a[0]的值是一样的,意义也完全一样,完全可以互相代替。同时因为在C语言中规定,数组是不能够整体访问的,所以a是不能够作左值的。

     

    2、a[0]表示的数组的第0个元素。当a[0]作左值的时候,表示的是a[0]这个元素的内存空间,也就是sizeof(int)个字节的大小。当a[0]作右值的时候,表示的是a[0]这个地址空间所存放的数(房子里面住的人)。

     

    3、&a表示的是数组的首地址,它的数值和数组首元素的首地址&a[0]、a完全一样,但是意义不一样。因为意义不一样,所以导致他们在参与运算的时候有不同的表示。&a是常量,不能做左值。

     

    特别注意区分a和&a,虽然两个的数值的一样的,但是他们的意义不一样,a代表数组的首地址(意义是数组整个内存空间大小(10*sizeof(int))的首地址),&a代表的是数值首元素的首地址(意义是数组的首元素的内存空间大小(sizeof(int))的首地址)

  • 相关阅读:
    Jenkins权限控制-Role Strategy Plugin插件使用
    迁移一个仓库到新的Gitlab
    Gitlab备份以及恢复
    10.使用nexus3配置golang私有仓库
    9.使用nexus3配置Python私有仓库
    8.maven上传jar包以及SNAPSHOT的一个坑
    7.nexus版本升级
    6.使用nexus3配置yum私有仓库
    5.使用nexus3配置npm私有仓库
    4.maven私服nexus2迁移到nexus3
  • 原文地址:https://www.cnblogs.com/xing-ting/p/10212296.html
Copyright © 2020-2023  润新知