尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

C/C++——数组退化小记

发布时间:2026/9/6 4:56:07

资讯中心
01
ARTICLE

C/C++——数组退化小记

C/C++——数组退化小记
这类型问题比较容易出错而且忘记特此说明总纲一般情况下对于一个数组无论是几维一但直接使用数组名会发生退化比如char(*)[20]退化成char*数组名出现在sizeof或者说数组名前面加了就会阻止退化但是一但在sizeof中的数组名发生了计算就会退化一次一维数组char str[20]表达式类型指向步长说明strchar*首元素1字节退化为指针strchar (*)[20]整个数组20字节数组指针str[0]char第一个元素-元素本身str[0]char*第一个元素1字节等价于strstr 1char*第二个元素1字节指针运算str 1char (*)[20]下一个数组20字节跳跃整个数组表达式sizeof 结果是否退化说明sizeof(str)20❌ 不退化整个数组大小sizeof(str)8✅ 是指针指针大小sizeof(str[0])1-元素大小sizeof(str[0])8✅ 是指针指针大小sizeof(str 1)8✅ 退化为指针指针大小sizeof(str 1)8✅ 是指针指针大小sizeof(*str)1-解引用后是元素sizeof(*(str))20❌ 不退化解引用整个数组指针二维数组char arr[2][3]表达式类型指向步长说明arrchar (*)[3]第一行3字节行指针arrchar (*)[2][3]整个数组6字节二维数组指针arr[0]char*第一行首元素1字节退化为指针arr[0]char (*)[3]第一行3字节等价于arrarr[0][0]char第一个元素-元素本身arr[0][0]char*第一个元素1字节等价于arr[0]arr[1]char*第二行首元素1字节退化为指针arr[1]char (*)[3]第二行3字节行指针表达式sizeof 结果是否退化说明sizeof(arr)6❌ 不退化整个二维数组sizeof(arr)8✅ 是指针指针大小sizeof(arr[0])3❌ 不退化第一行数组sizeof(arr[0])8✅ 是指针指针大小sizeof(arr[0][0])1-元素大小sizeof(arr[0][0])8✅ 是指针指针大小sizeof(arr 1)8✅ 退化为指针指针大小sizeof(arr[0] 1)8✅ 退化为指针指针大小sizeof(*arr)3❌ 不退化解引用后是第一行sizeof(**arr)1-双重解引用是元素
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。