sizeof与数组之间那点事
来源:互联网 发布:js多行文字溢出省略号 编辑:程序博客网 时间:2024/05/23 00:42
今天做题看到很多sizeof(a)、sizeof(&a)、sizeof(&a+1)之类的题,一不小心就把人弄晕了,所以今天就好好把这些整理整理。
开始之前呢分享一个小技巧——数组名只有处于以下两种情况时才代表整个数组:①数组名单独在sizeof内时。② &数组名(如&a)
int a[ ] = {1,2,3,4};
sizeof(a) =16 数组名单独在sizeof内,表示整个数组,一个int型元素4个字节,4*4=16。
sizeof(a+0) =4 此处数组名不是单独在sizeof内,那表示的就是首元素地址,+0,那还是首元素地址,存地址的指针变量大小是四个字节。
sizeof(*a) =4 此处 不是单独在sizeof内,a代表首元素地址,*a就代表的是首元素——‘1’,求首元素大小。
sizeof(a+1) =4 首元素地址加1,那就是第二个元素的地址,还是地址。
sizeof(a[1]) =4 a[1]数组中的第一个元素,整型数据4字节。
sizeof(&a) =4 此处&a就代表整个数组的地址,但是 地址啊,放指针变量里面的,所以还是4字节。
sizeof(*&a) = 16 &a是a的地址,那*&a就代表整个数组了,所以是16字节。
sizeof(&a+1) =4 此处&a代表的是数组a的地址(整个数组),虽然数组地址和数组首元素地址的值是一样的,但代表的意义完全不相同。这里(&a+1),是向后移动16字节(数组a总大小),那么(&a+1)代表的是数组a尾元素后一位的那个元素地址。
sizeof(&a[0]) =4 这就不用说了,取第一个元素地址
sizeof(&a[0]+1) = 4 嗯,第二个元素地址。
求整型数组的还是比较简单的,但要记住这些规则,毕竟后面复杂的多了去了,比如字符型数组啊,字符串啊,二维数组啊,以及strlen对它们操作啊,这些都是面试官爱出的题。一定要弄清楚明白。
- sizeof与数组之间那点事
- Sizeof() 那点事~
- sizeof ()那点事
- 数组那点事
- struts2校验与 ajax之间的那点事
- 数组元素那点事
- new、vitual、override之间那点事
- new、vitual、override之间那点事
- Fragment,Activity,FragmentManager之间那点事
- sizeof和strlen与数组之间的恩恩怨怨
- 手动控制屏幕旋转时2.3与4.0之间的那点事
- java中关于数组那点事
- 数组(Array)那点事
- 关于数组的那点事
- 指针与多维数组的那点事儿
- 析构函数和Finalize()之间的那点事
- 你可以知道,智能设备之间那点事
- 游标、事务并发和锁三者之间的那点事
- 使用json
- Android开发艺术探索__线程和线程池(十一)
- C++学习19:名称空间
- UVA 12219 Common Subexpression Elimination——map
- 51nod 1006 最长公共子序列Lcs
- sizeof与数组之间那点事
- 《软件测试的艺术》读书心得 ---一次自我评价测试
- jsp之编码、安装Browse Deployment Location插件、脚本片段、表达式、注释、声明
- sublime中文出现乱码怎么办?这里有办法
- iOS CollectionView刷新indexPath变化问题
- 173. Binary Search Tree Iterator
- HTML(三) 设置文字列表
- CRC16校验的学习
- 最长公共子序列lcs