96SEO 2026-02-20 10:32 0
1.当sizeof数组名此时数组名代表整个数组求出的是整个数组的大小单位是字节。

2.当数组名此时数组名代表整个数组取出的是整个数组的地址虽然与首元素地址相同但含义不一样。
printf(%d\n,sizeof(a[0]1));//10答案
a代表整个数组每个数组元素是int类型一共4个元素故为16字节大小
a为首元素地址当地址进行±运算时与指针类型有关a的类型为int*所以0时地址会向前跳过0个整形仍旧是首元素地址
a为首元素地址当解引用时得到的是arr[0]也就是第一个整形元素大小为4
a为首元素地址当地址进行±运算时与指针类型有关a的类型为int*所以1时地址会向前跳过1个整形而数组是连续存放的故地址会指向第二个数组元素。
数组名代表的是取出整个元素的地址但不管是什么地址在32位下地址都是4个字节大小
1.*与结合会相互抵消数组名在sizeof中就是求出整个数组的大小
2.数组名取出的是整个数组的地址当地址进行解引用时与指针类型有关解引用一个数组指针类型的内容就会访问一个大小为此数组的内容即4个整形变量的数组大小为16字节
a代表整个数组当地址进行±运算时与指针类型有关而此数组指针的类型是
数组指针1会跳过一个数组也就是跳过4个整形的数组而运算后的结果仍旧是地址故答案为4
a[0]代表的是第一个元素的地址当地址进行±运算时与指针类型有关整形指针1会跳过一个整形即a[0]1指向数组第二个元素为第二个元素的地址大小为4个字节
arr在sizeof中为整个数组求出的是整个数组的大小单位是字节结果为6字节
arr此时为首元素地址类型为char*字符指针0会跳过0个字符大小此时仍指向首元素地址地址大小为4字节
arr此时为首元素地址类型为char*解引用arr会访问一个char大小的内容为数组第一个元素大小为1字节
arr代表整个数组取出的是整个数组的地址当地址进行±运算时与指针类型有关数组指针的类型为
数组指针1会跳过一个数组在这就是跳过6个字符运算后的结果依然是地址大小为4
arr[0]代表第一个元素的地址当地址进行±运算时与指针类型有关字符指针1会跳过一个字符arr[0]1代表第二个元素地址大小为4字节
arr为首元素地址当地址进行±运算时与指针类型有关字符指针0会向前跳过0个字符地址不变而arr数组中没有’\0’,故结果为随机值
arr为首元素地址*arr为第一个元素’a’传入strlen中会把a的ASCII码值当做地址而此地址为野指针会报错。
arr[1]为数组第二个元素’b’传入strlen中会把b的ASCII码值当做地址而此地址为野指针会报错。
arr为整个数组地址当地址进行±运算时与指针类型有关数组指针1会向前跳过一个数组故此时地址为跳过一个数组的地址由于不清楚什么时候遇到’\0’故为随机值
arr[0]为首元素地址当地址进行±运算时与指针类型有关字符指针1会向前跳过一个字符故此时地址为跳过一个字符的地址由于不清楚什么时候遇到’\0’故为随机值
arr代表整个数组在sizeof中会求出整个数组的大小为7字节因为写成字符串形式自带’\0’
arr为首元素地址当地址进行±运算时与指针类型有关字符指针1会向前跳过1个字符故此时地址为跳过一个字符的地址则结果为4
arr[1]为数组中第二个元素的地址为char类型大小为1字节
arr为整个数组地址arr为整个元素的地址类型为char(*)[7]数组指针1会跳过1个数组arr1为跳过一个数组后的地址是地址大小就是4字节
arr[0]为首元素地址当地址进行±运算时与指针类型有关字符指针1会向前跳过1个字符故此时地址为跳过一个字符的地址则结果为4
arr为首元素地址因为字符串自带\0故传入首元素地址后会得到\0之前的字符串个数也就是6
arr为首元素地址当地址进行±运算时与指针类型有关字符指针0会向前跳过0个字节故传入首元素地址后会得到\0之前的字符串个数也就是6
arr为首元素地址解引用后得到字符a会将字符a的ASCII码值当做地址传入strlen由于此地址为野指针故会error
arr[1]为字符b会将字符b的ASCII码值当做地址传入strlen由于此地址为野指针故会error
arr为整个数组地址arr为整个元素的地址传入strlen后数组指针会被强转为char
arr为整个数组地址arr为整个元素的地址类型为char(*)[7]数组指针1会跳过1个数组arr1为跳过一个数组后的地址传入strlen后数组指针会被强转为字符指针类型
arr[0]为数组首元素arr[0]为首元素地址当地址进行±运算时与指针类型有关字符指针1会向前跳过1个字符故得到的结果为5
p为字符首元素地址解引用得到首元素类型是char故大小为1字节
p[0]可以写成*p0)也就是数组第一个元素类型是char大小是1字节
p是地址的地址当地址进行±运算时与指针类型有关p的类型为char**1会跳过一个char*类型的但仍旧是地址为4字节
p[0]为首元素地址类型是字符指针1会跳过一个字节但仍旧是地址为4字节
p为字符串首元素地址当地址进行±运算时与指针类型有关字符指针会跳过一个字节指向b将b的地址传入strlen中得到5
p为字符首元素地址解引用得到首元素会将字符a的ASCII码值当做地址传入strlen由于此地址为野指针故会error
p[0]为字符a会将字符a的ASCII码值当做地址传入strlen由于此地址为野指针故会error
p是地址的地址当地址进行±运算时与指针类型有关p的类型为char**1会跳过一个char*类型的由于不知道何时出现\0故为随机值
printf(%d\n,sizeof(a[0][0]));//2
printf(%d\n,sizeof(a[0]1));///4
printf(%d\n,sizeof(*(a[0]1)));//5
printf(%d\n,sizeof(*(a[0]1)));//9
printf(%d\n,sizeof(a[3]));//11开始之前要明确几个概念
a是二维数组的数组名在sizeof中表示整个数组那么得到的结果就是整个数组的大小为48字节
a[0]是第一行的数组名数组名放在sizeof中就代表第一行整个数组为16字节
a[0]是第一行数组名他不在sizeof中也没有取地址故为第一行首元素地址当地址进行±运算时与指针类型有关1后指向第一行第二个元素但依旧为地址那就是4字节
a[0]1为第一行第二个元素地址解引用后成为int类型的元素故为4字节
a不在sizeof中也没有取地址故为首元素地址二维数组的首元素地址为第一行数组的地址类型为int(*)[4]1跳过一个4字节的数组指向第二行数组但依旧是地址故为4字节大小
1.a1为第二行数组的地址解引用后就是整个第二行数组则sizeof后就是第二行整个数组的大小为16字节
2.*(a1)就是a[1]a[1]就是第二行的数组名放在sizeof中就是求第二行整个数组的大小为16字节
a[0]是第一行数组的地址1后就是第二行数组的地址是地址的话就是4字节
解引用第二行数组地址找到的就是第二行整个数组sizeof后就是16字节
a不在sizeof中也没有取地址故为首元素地址即为第一行数组地址解引用就是整个第一行数组大小为16字节
欢迎讨论与纠错下篇也是笔试题但是不是关于sizeof与strlen而是会更灵活的运用
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback