深入理解int a[5];

1)定义了一个数组,其包含了5 个int 型的数据。我们可以用a[0],a[1]等来访问数组里面的每一个元素。

2)当我们定义一个数组a 时,编译器根据指定的元素个数和元素的类型分配确定大小(元素类型大小*元素个数)的一块内存,并把这块内存的名字命名为a。名字a 一旦与这块内存匹配就不能被改变。

3)a[0],a[1]等为a 的元素,但并非元素的名字。数组的每一个元素都是没有名字的。

4)sizeof(a)的值为sizeof(int)*5,32 位系统下为20。 
   sizeof(a[0])的值为sizeof(int),32 位系统下为4。

5)sizeof(a[5])的值在32 位系统下为4。并没有出错,为什么呢?我们讲过sizeof 是关键字,而不是函数。函数求值是在运行的时候,而关键字sizeof 求值是在编译的时候。虽然并不存在a[5]这个元素,但是这里也并没有去真正访问a[5],而是仅仅根据数组元素的类型来确定其值。所以这里使用a[5]并不会出错。

6)sizeof(&a[0])的值在32 位系下为4,取元素a[0]的首地址。

7)sizeof(&a)的值在32 位系统下也为4,取数组a 的首地址。

深入理解int a[5];相关推荐

  1. 如何理解*(int *)0x12ff7c = 0x100;?

    如何理解*(int *)0x12ff7c = 0x100;? 1)先将地址0x12ff7c 强制转换,告诉编译器这个地址上将存储一个int 类型的数据:然后通过钥匙"*"向这块内存 ...

  2. 如何准确理解int abc()、int *abc()、int **abc()……

    如何准确理解int abc().int *abc().int **abc()-- 在<C和指针>一书里面是这样讲的: int abc(); int abc[3]; int **abc(); ...

  3. 菜鸟理解int为啥是4个字节

    我们先来看int的底层源码 最大值最小值 而int如果转成十进制的话,那么他们的范围[-231~231 -1],也就是"-2147483648 ~ 2147483647" 十位数. ...

  4. 理解int的存储方式以及VS二进制编辑器的使用

    此文先讲int数据的存储(大小端)问题,然后简单讲一下二进制编辑器的使用,针对像我一样的初学者,懂了的大神可以直接关掉 直接说结论,大家都知道一个int数据是4字节,一个字节是8个比特位,也就是一个i ...

  5. int ** 的理解

    int ** 的理解 int **p; int * p, 比较容易理解,就是定义一个指向int类型的指针.那么这里的int **p是什么呢? 对于这种特殊形式,首先可以确定的是p是一个指针,因为p前面 ...

  6. linux下dup函数,Linux dup dup2函数理解

    在linux中,我们需要复制文件描述符,下面是我对文件描述符的理解 int dup(int fd); // 复制一个已经存在的文件描述符,如果成功,返回复制成功后的文件描述符,失败返回-1 int d ...

  7. 主函数main中变量(int argc,char *argv[ ])的含义

    一直不太理解 int main( int argc, char* argv[] ) 或者 int main( int argc, char** argv ) 经典例子 对于理解argv[ ]函数很管用 ...

  8. 面试官:int和Integer有什么区别?为什么要有包装类?

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 重要说明:本篇为博主<面试题精选-基础篇>系列中的一篇,查看 ...

  9. Java的Comparator排序(升序降序)理解

    Java的Comparator排序(升序降序)理解 int compare(T o1, T o2); 这里o1表示位于前面的对象,o2表示后面的对象 返回-1(或负数),表示不需要交换01和02的位置 ...

最新文章

  1. WebApi的安全性及其解决方案
  2. 网站SEO优化工作主要包括哪些内容?
  3. phpmyadmin设置登录密码的几种方法
  4. Apache Velocity官方指南-资源
  5. 95-40-120-java.util.concurrent-线程-AbstractEventExecutor
  6. C++编程语言中const关键字介绍
  7. Web开发HTTP中URI和URL的情感纠葛
  8. 算法:同构字符串205. Isomorphic Strings
  9. java递归100_java递归算法1加到100怎么实现?
  10. 想请问下PDF双面打印时(打印机自动双面打印)为什么反面那页的内容是倒过来的,应该怎么设置?...
  11. 基于qt平台的ip地址输入控件
  12. 一篇文章详细解读Spring的AOP原理过程(Spring面向切面详解)
  13. 如何成为一个合格的JAVA初级程序员
  14. 研发思维09----嵌入式智能产品开发经过思考
  15. android 连接已保存的wifi,手机连接WiFi显示已保存但是连接不上
  16. 解决win2003里IIS运行ASP时出现请求资源在使用中的问题
  17. Sonatype Nexus3 搭建私有仓库
  18. 设置短域名跳转目标网址,长链接缩短的方法
  19. React脚手架创建步骤
  20. oracle建库sid大写,oracle解除账号锁定ORA-01078错误举例:SID的大小写错误

热门文章

  1. 大数据笔记(六)——HDFS的底层原理:JAVA动态代理和RPC
  2. 数据库复习总结(12)数据检索
  3. 小看--发布-订阅(观察者)模式
  4. 问候Maven3(笔记一)
  5. VC++ 坐标问题总结,控件大小随窗口变化
  6. IndexedDB技术简介(一)(转)
  7. raconter ce qui s'est passé
  8. openStack 租户控制台修改虚拟机账户密码
  9. 初入react -01
  10. Android开发环境——模拟器AVD相关内容汇总