当前位置: 首页 > news >正文

啊树 wordpress网奇seo赚钱培训

啊树 wordpress,网奇seo赚钱培训,可不可以用p2p做视频网站,帮别人做违法网站会怎么样目录 1. 一维数组的退化 2.字符串数组的退化 3. 二维数组的退化 3.1 为什么退化为 int (*)[4] 而不是 int **? 3.2举例说明 3.3 .总结 在 C 语言中,数组名在大多数情况下会退化为指向其第一个元素的指针,这种机制称为数组退化&#xf…

目录

1. 一维数组的退化

2.字符串数组的退化

3. 二维数组的退化

3.1 为什么退化为 int (*)[4] 而不是  int **?

3.2举例说明

3.3 .总结


在 C 语言中,数组名在大多数情况下会退化为指向其第一个元素的指针,这种机制称为数组退化(Array Decay)。不过,这种退化的具体表现取决于数组的维度。详细解释如下:

1. 一维数组的退化

当一维数组作为参数传递给函数时,数组名退化为指向数组第一个元素的指针。

void func(int *arr) {// arr 是指向 int 的指针
}int main() {int arr[5] = {1, 2, 3, 4, 5};func(arr); // arr 退化为 &arr[0],即指向第一个元素的指针return 0;
}

内存布局

假设 arr[5] 的首地址为 0x1000arr 退化为指向 arr[0] 的指针,即 int *,指向地址 0x1000

2.字符串数组的退化

当字符串数组(例如 char *array[])作为参数传递给函数时,它会退化为一个指向指针的指针(char **。这是因为数组名在函数调用时会退化为一个指针,具体过程如下:

作为函数参数时的退化:

1.array 作为参数传递时,它不会直接传递整个数组,而是退化为指向数组首元素的指针。

2.因为数组的每个元素是一个 char *,所以退化后的类型是 char **,表示一个指向字符串指针的指针

void processArray(char **arr, int size);
void processArray(char *arr[], int size);

使用 char *arr[]char **arr 作为函数参数是等效的

3. 二维数组的退化

二维数组的退化稍微复杂一些。当二维数组作为参数传递给函数时,它退化为指向第一行的指针。由于每一行本身是一个一维数组,结果是一个指向数组的指针。

void func(int arr[][4]) {// arr 是指向包含 4 个 int 的数组的指针,即 int (*)[4]
}int main() {int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};func(arr); // arr 退化为指向 arr[0] 的指针return 0;
}

内存布局

假设二维数组 arr[3][4] 的首地址为 0x1000

arr 退化为指向 arr[0] 的指针,即 int (*)[4],指向地址 0x1000

arr[0] 是一维数组,包含 4 个 int,每行占用 4 * sizeof(int) 的空间。

3.1 为什么退化为 int (*)[4] 而不是  int **

二维数组是连续分布的:在内存中,二维数组是一个大的连续内存块。

int ** 表示一个指针的指针,通常用来表示一组独立的指针(比如动态分配的二维数组),但这里 arr 是一个连续的内存块,无法用 int ** 访问。

退化为 int (*)[4] 后,编译器知道每行占用 4 * sizeof(int) 的空间,因此可以正确地解析 arr[i][j]

3.2举例说明

在函数中:

void process2DArray(char arr[][10], int rows);

这里的 arr 是一个指向数组的指针(char (*)[10]),通过 arr[i] 访问每一行。编译器知道每行是一个长度为 10 的数组,因此可以正确解析 arr[i][j]

如果改为:

void process2DArray(char **arr, int rows);

这会导致类型不匹配,因为 char ** 不包含关于行长度的信息,无法正确解析 arr[i][j]。

3.3 .总结

1.数组名退化为指针的原因在于函数调用时无法直接传递整个数组

2.对于二维数组,退化为指向行的指针char (*)[10]),以便编译器知道行的大小。

3.二维数组与指针数组(char **)有本质不同,因为二维数组是一个连续的内存块,而指针数组是独立的指针集合。

http://www.hkea.cn/news/561013/

相关文章:

  • 招标网哪个网站信息可靠百度站长工具网站
  • 郑州七七网站建设互联网推广公司
  • 佛山做外贸网站代理商百度收录技术
  • 公司网站建设需要什么今日热搜第一名
  • 烟台建设企业网站网站快速收录入口
  • 怎么做繁体字网站网络营销公司注册找哪家
  • 做ppt介绍网站吗网站搜索引擎优化工具
  • 深圳网站建设有没有市场百度搜索推广的五大优势
  • 网站建设好的图片百度互联网营销
  • 柳州网站制作公司seo优化什么意思
  • 网站建设做的好的公司淘宝关键词优化怎么弄
  • 手机网站用模版方象科技的企业愿景
  • 沈阳网站建设技术公司排名公司市场营销策划方案
  • 赣州网站建设怎样石家庄最新消息
  • 公司注册地址和经营地址不一致可以吗长春seo招聘
  • 好的做问卷调查的网站好推广有奖励的app平台
  • 有专业设计网站吗百度指数与百度搜索量
  • 网站的整体结构百度云网盘资源搜索引擎入口
  • 咸阳网站建设哪家专业杭州优化公司在线留言
  • 地板网站建设门户网站
  • 新增备案网站负责人人工智能培训心得体会
  • 帮境外赌场做网站是否有风险百度企业号
  • 网站换了服务器百度seo排名优化公司哪家好
  • 海南网站建设制作网络营销效果评估
  • 飞阳建设网站上海广告公司
  • 营销网站导航栏常见网站搜索排名靠前
  • 深圳市政府网站官网百度地图疫情实时动态
  • 上海建设工程咨询网 首页深圳优化排名公司
  • 杭州哪个网站建设最好做网站的网络公司
  • 制作一个网站步骤东莞网络营销销售