能用pinduoduo做网站吗深圳关键词优化

张小明 2026/3/12 13:11:57
能用pinduoduo做网站吗,深圳关键词优化,腾讯云免费建站,火车头更新wordpress一.什么是“数组退化成指针”#xff1f;在许多情况下#xff0c;数组名会退化为指针#xff0c;即原本代表数组的变量#xff0c;变成了指向数组第一个元素的指针。这意味着 数组名并不总是一个指向整个数组的指针#xff0c;而是指向数组第一个元素的指针。二.举例1.作为…一.什么是“数组退化成指针”在许多情况下数组名会退化为指针即原本代表数组的变量变成了指向数组第一个元素的指针。这意味着数组名并不总是一个指向整个数组的指针而是指向数组第一个元素的指针。二.举例1.作为函数参数传递时在函数参数中数组总是退化为指针。这是因为函数参数的大小是固定的而数组的大小在编译时并不确定。#include stdio.h void foo(int arr[]) { printf(%zu\n, sizeof(arr)); // 输出指针的大小4 或 8 字节 } int main() { int arr[10]; foo(arr); }结果sizeof(arr) 输出的是 指针的大小4 或 8 字节取决于32/64位平台。分析传递数组时arr退化为指针。sizeof(arr)返回的是指针的大小而不是数组的大小。void foo(int arr[ ]) 等价于void foo(int *arr)2.作为函数参数的引用时即使你使用引用C 中或者指针C / C 中传递数组数组名依然会退化成指针。#include iostream void foo(int* arr) { std::cout sizeof(arr) std::endl; // 输出指针大小 } int main() { int arr[10]; foo(arr); // 数组退化为指针 }分析arr作为参数传递给foo时退化为指针即传递给函数的是指向arr[0]的指针。foo(arr)等价于foo(a[0]);3.用作sizeof表达式时sizeof返回的是数组类型的大小然而如果在数组名后加上 0它会退化为指针类型只看指针类型的大小。#include stdio.h int main() { int arr[10]; printf(%zu\n, sizeof(arr)); // 数组的大小40字节假设 int 为4字节 printf(%zu\n, sizeof(arr0)); // 指针的大小4 或 8 字节 }分析arr在sizeof(arr)中arr是一个数组返回的是数组的总大小10 * sizeof(int)。arr0在sizeof(arr0)中arr退化为指针int*sizeof返回的是指针的大小4.在指针运算中数组名在指针运算中始终退化为指针因为数组名本质上是指向数组第一个元素的指针。#include stdio.h int main() { int arr[5] {1, 2, 3, 4, 5}; int *ptr arr; // 数组退化为指针 printf(%d\n, *(ptr 2)); // 输出 arr[2] 的值 3 }分析arr被赋值给ptr实际上是指针赋值这时候arr退化为指向arr[0]的指针。*(ptr 2)实际上等价于arr[2]。5.作为函数返回值时C在 C 中数组返回值也会退化为指针。如果你尝试返回整个数组编译器会报错但返回一个指向数组的指针是合法的。#include iostream int* foo() { static int arr[3] {1, 2, 3}; return arr; // 返回指向数组的指针 } int main() { int* ptr foo(); std::cout ptr[1] std::endl; // 输出 2 }分析由于arr是一个局部数组返回其指针是合法的arr退化为指向arr[0]的指针。注意数组名退化为指针因此你得到的是指向数组首元素的指针。6.数组作为运算中的操作数时在许多情况下数组名也会自动退化为指针尤其是作为运算的操作数时。#include stdio.h int main() { int arr[3] {1, 2, 3}; printf(%d\n, *(arr 1)); // 输出 2 }分析这里arr退化为指向arr[0]的指针arr 1就是指向arr[1]的指针*(arr 1)解引用它得到 2。三、总结 避免数组传参退化的方法数组在传参时默认会退化为指向首元素的指针但这是由形参类型决定的如果形参不是“数组引用”或“指向数组的指针”则实参数组一定会发生数组到指针的转换也就是所谓的退化。简单说只有当形参显式表示“整个数组类型”时退化才不会发生。那什么是形参为“数组引用”或“指向数组的指针”1.指向数组的指针C / Cvoid foo(int (*arr)[10]);int a[10]; foo(a);实参传的是a类型匹配int (*)[10]没有退化2.数组引用Cvoid foo(int (arr)[10]);int a[10]; foo(a);arr是数组引用数组身份被完整保留没有退化情况是否退化foo(arr)✅ 实参处发生转换void foo(int arr[])✅void foo(int *arr)✅void foo(int (*arr)[N])❌void foo(int (arr)[N])❌sizeof(arr)❌arr❌数组名在函数调用中作为形参时普通写法一定会退化只有参数代表整个数组类型它才能接收整个数组否则都是接收的单个元素正确不退化的形参写法void foo( int (* arr )[10] )写法指向int *p单个 intint (*p)[10]整个 int[10]
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何建设网站子页医院网站建设情况说明书

一、回溯算法简介回溯算法(Backtracking)是一种基于递归的穷举搜索算法,核心思想是 “尝试 - 回退 - 再尝试”:从初始状态出发,逐步探索所有可能的路径,当发现当前路径无法满足条件时(剪枝&…

张小明 2026/3/5 5:07:26 网站建设

学校网站开发建设合同弹窗广告投放平台

Ubuntu 10.04:多媒体与游戏的精彩世界 1. Ubuntu 10.04 游戏情况 Ubuntu 开发者为了让所有内容能装在一张 CD 里,会不断从主发行版中移除一些项目。在决定将 DVD 作为默认安装介质之前,这种情况会持续存在。这导致一些游戏未能保留,在“应用程序”→“游戏”菜单中,仅剩…

张小明 2026/3/5 5:07:28 网站建设

做网站 发现对方传销备案网站名称有什么用

文档管理全流程指南 在任何出版部门的工作中,制定准确且实际可行的时间表,并在项目进行过程中对其进行调整,是一项颇具挑战性的任务。下面将为大家详细介绍文档管理中的调度安排、文档流程等关键内容。 调度安排 在文档项目中,准确预估各项任务所需时间至关重要。以下是…

张小明 2026/3/5 5:07:29 网站建设

做网站用什么配置笔记本期货网站做模拟

性能数据的图形化展示与处理 1. Nagios 处理插件性能数据 Nagios 能够提取性能数据,并将其写入文件供其他程序处理,或者直接传递给每次服务或主机检查后运行的外部软件。不过,服务和主机检查提供的性能数据,只有在相应插件以预定义格式提供时才能被处理。 例如,使用 c…

张小明 2026/3/5 5:07:29 网站建设

asp网站的缺点潍坊高端模板建站

GoB插件ZBrush 2025兼容性终极解决方案:深度技术解析与快速修复指南 【免费下载链接】GoB Fork of original GoB script (I just added some fixes) 项目地址: https://gitcode.com/gh_mirrors/go/GoB 在3D建模工作流程中,GoB插件作为连接ZBrush与…

张小明 2026/3/5 5:07:30 网站建设

自己做网站要买什么网页版微信下载

JuiceFS分布式同步性能优化实战指南 【免费下载链接】juicefs JuiceFS 是一个高性能的分布式文件系统,适用于大规模数据处理、机器学习、容器和对象存储等场景。* 提供高性能的分布式文件系统;支持多种云存储和对象存储;支持 POSIX 文件系统接…

张小明 2026/3/5 5:07:31 网站建设