zoukankan      html  css  js  c++  java
  • 数组与指针的一些关系

    本文主要是理解这几个符号的意思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))的首地址)

  • 相关阅读:
    kafka概念使用简介注意点
    spring boot整合log4j2
    postgresql和oracle数据库对比
    postgresql数据操作
    Django缓存序列化信号
    Django补充
    Git学习
    JavaScript语法和类型
    Django分页
    Vue:配置组件
  • 原文地址:https://www.cnblogs.com/xing-ting/p/10212296.html
Copyright © 2011-2022 走看看