目录

一、前言

二、sizeof在字符数组中的题目

这整题sizeof的答案是:

32位平台下:

64位平台下:


一、前言

前面我们已经提到了sizeof在整形数组的使用,因为strlen只能在字符数组中使用,所以上一

没涉及strlen,下篇一定(手动狗头),可能会迟到,但是不会缺席。其实在数组的使用考得挺频

繁的 一般会出现一个字符数组然后呢,给出sizeof和strlen求数组长度,考点在于\0是计算到了,

这类题目较为简单,在一维数组简单些,在二维数组略难一点点,在三维数组.......好啦,废话不多

说咱们,直接进入正题。


二、sizeof在字符数组中的题目

(友情提示,若是下例没看懂,可以看看第一篇:(17条消息) 详解strlen和sizeof在数组的中的使用(一)_执久呀的博客-CSDN博客)

#include<stdio.h>
#include<string.h>
int main()
{char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };printf("%d\n", sizeof(arr));printf("%d\n", sizeof(arr+0));printf("%d\n", sizeof(*arr+1));printf("%d\n", sizeof(&arr));printf("%d\n", sizeof(&arr+1));printf("%d\n", sizeof(&arr[1]));printf("%d\n", sizeof(&arr[1]+1));return 0;
}

第一个sizeof(arr),数组名单独放在sizeof中,表示的是整个数组,所以大小是6*1=6字节

有疑问的可以去看看第一篇,那里有详细介绍。

第二个sizeof(arr+0),数组名没有单独放在sizeof中,所以arr表示首元素的地址,首元素

地址+0还是首元素地址,因为是地址,所以是4或8字节

第三个sizeof(*arr+1),arr表示的是首元素地址,*arr表示的是首元素,*arr+1,表示首元素

自增1,即a+1,对于整形和字符型相加减,char会自动转化成int类型,char会自动转化成所对

的ascll值,如a是97,所以a+1是98了,但是int不能自动转化成char(后期会介绍,这里就不

多说了),所以这个值是98,为int类型,所以大小是4字节

第四个sizeof(&arr),&arr拿到了整个数组的地址地址,不用多说,既然是地址,那么大小就

4或8字节

第五个sizeof(&arr+1),&arr拿到了整个数组的地址,&arr+1,跳过了整个数组,因为sizeof

不会去计算,所以不存在什么所谓的越界访问。既然是地址那就是4或8字节

第六个sizeof(&arr[1]),arr[1]是第二个元素,&arr[1]表示拿到第第二个元素的地址,既然是

地址,所以是4或8字节

第七个 sizeof(&arr[1]+1),&arr[1]表示拿到第二个元素的地址,&arr[1]+1,表示的是第三个元

素的地址,既然是地址,(你们应该听吐了吧,我也快讲吐了),那就是4或8字节

其中第三题比较易错,多留意一下第三题吧。

这整题sizeof的答案是:

32位平台下:


64位平台下:

好啦,每日一道题就行啦哈哈,咱们下期在见

详解strlen和sizeof在数组中的使用(二)相关推荐

  1. 【分步详解】两个有序数组中的中位数和Top K问题

    我现在在做一个叫<leetbook>的开源书项目,把解题思路都同步更新到github上了,需要的同学可以去看看 地址:https://github.com/hk029/leetcode 这 ...

  2. 经典算法详解(2)寻找数组中的次大数

    题目:10个互不相等的整数,求其中的第2大的数字,要求数组不能用排序,设计的算法效率越高越好. 1 #include<iostream> 2 3 using namespace std; ...

  3. 最详解——寻找两个有序数组的中位数

    参考:[分步详解]两个有序数组中的中位数和Top K问题 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O ...

  4. 最长上升子序列(LIS)/最长不上升子序列问题算法详解+例题(树状数组/二分优化,看不懂你来打我)

    目录 最长上升子序列 一.朴素做法O(2n)O(2^n)O(2n) 二.优化做法O(nlogn)O(nlogn)O(nlogn) 三.例题引入:P1020 导弹拦截(求最长上升子序列和最长不上升子序列 ...

  5. android平台下OpenGL ES 3.0实例详解顶点属性、顶点数组

    OpenGL ES 3.0学习实践 android平台下OpenGL ES 3.0从零开始 android平台下OpenGL ES 3.0绘制纯色背景 android平台下OpenGL ES 3.0绘 ...

  6. vue template html属性,详解template标签用法(含vue中的用法总结)

    一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了 ...

  7. 公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用

    近年来,在深度学习技术的帮助下,语音识别取得了极大的进展,从实验室开始走向市场,走向实用化.基于语音识别技术的输入法.搜索和翻译等人机交互场景都有了广泛的应用. Librispeech是当前衡量语音识 ...

  8. 公开课 | 详解CNN-pFSMN模型以及在语音识别中的应用

    近年来,在深度学习技术的帮助下,语音识别取得了极大的进展,从实验室开始走向市场,走向实用化.基于语音识别技术的输入法.搜索和翻译等人机交互场景都有了广泛的应用. Librispeech是当前衡量语音识 ...

  9. 一致性协议raft详解(三):raft中的消息类型

    一致性协议raft详解(三):raft中的消息类型 前言 raft 节点 Raft中RPC的种类 RequestVote leader选举成功后 AppendEntries 请求参数 返回值 存储日志 ...

最新文章

  1. mysql存储引擎6_Mysql各种存储引擎对比总结
  2. 兼容IE8,滚动加载下一页
  3. android ext3 格式化,怎样将TF卡格式化为EXT分区?
  4. inodemac_校园网客户端Mac版-Inode7.0 for mac下载 V7.0-PC6苹果网
  5. containsObject 总是不含有,你会用吗
  6. C语言学习之将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1. 要求改为1,4,5,6,8。
  7. java identity_仔细研究Java Identity API
  8. 串行内存消耗 并行内存_如何估算内存消耗?
  9. 适用于高级Java开发人员的十大书籍
  10. 青岛经济职业学校有计算机专业吗,青岛经济职业学校
  11. npm ERR! command failednpm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild
  12. 使用 RemObjects SDK 建立 WebService 应用
  13. 垃圾收集器和内存分配
  14. win7旗舰版安装oracle11g
  15. 第二章、Zigbee模块参数(DRF1609H、DRF2657C)
  16. 处理团队中的消极情绪
  17. 读书笔记丨《数据产品经理修炼手册:从零基础到大数据产品实践》丨DAY4
  18. 智安网络丨居安思危·洞见未来 —— 智安网络安全周报
  19. 做一个校园跑腿小程序需要多少成本?
  20. docker安装node-sass报错

热门文章

  1. 盘点儿童智力开发的首选编程语言——Scratch
  2. FILETIME和LARGE_INTEGER
  3. 使用COUNT(*)统计指定表行数时报错:将 expression 转换为数据类型 int 时出现算术溢出错误
  4. 微信拍一拍什么意思?怎么使用微信新功能拍一拍
  5. 基于PyQt5和Pywinauto自动化测试客户端
  6. Problem J day-of-year
  7. 常州大学/企业微信/电费查询脚本
  8. python核心教程:max函数怎么使用
  9. JAVA校验JSON数据格式最终版。
  10. Mybatis 动态sql where 条件搜索以及In函数的使用