news 2026/6/25 22:40:00

数组作为参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组作为参数

数组作为参数

当数组作为参数传递的时候,实际上传递的是数组的首地址,在语法上来说传递的是一个指针变量。

#include<stdio.h>#include<string.h>voidgetArrLen(charbuffer[]){printf_s("using sizeof: %zd\n",sizeof(buffer));printf_s("using strlen: %zd\n",strlen(buffer));}intmain(intargc,charconst*argv[]){charbuffer[]{"Hello World"};printf_s("sizeof(buffer) : %zd\n",sizeof(buffer));getArrLen(buffer);return0;}

考虑如上代码,main中的sizeof计算的是数组的长度,getArrLen中的sizeof计算的则是指针的大小,strlen计算的才是数组长度。因为在参数传递的过程中数组首地址变为了一个指针变量。

通过反汇编如上代码,我们可以发现在buffer的定义处调用sizeof实际上并没有计算buffer的长度,而是直接传递了一个立即数给printf_s,这是编译器优化的结果。因为buffer的长度在编译期间就可以确定了。

作为参数传递的时候才真正计算了buffer的长度。

strcpy和strlen

对于strcpy这个函数,编译器会使用xmm0这个寄存器来加速复制的过程。

书中说编译器会对这两个函数进行内联优化,我打开了O2编译选项,却没有看见内联优化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 11:43:00

30分钟上手动漫生成模型Counterfeit-V2.5

30分钟上手动漫生成模型Counterfeit-V2.5 在AI图像生成的浪潮中&#xff0c;二次元风格内容正以前所未有的速度占领创作者的视野。从独立画师到游戏美术团队&#xff0c;越来越多的人希望借助深度学习技术快速产出高质量、风格统一的动漫角色图。然而现实往往是&#xff1a;环…

作者头像 李华
网站建设 2026/6/25 14:49:56

BioSIM 人TNK-tPA(SIM0359):保证最终产物的高纯度与高活性

在现代生物医药研究中&#xff0c;生物类似药&#xff08;Biosimilars&#xff09;正逐渐成为创新药物的重要补充。它们不仅在成本控制上具有显著优势&#xff0c;同时在药效和安全性方面也展现出与原研药相当的潜力。作为这一领域的前沿探索者&#xff0c;InvivoCrown 推出的 …

作者头像 李华
网站建设 2026/6/24 8:24:28

BioSIM抗人DKK1抗体SIM0357:无动物源,安全可靠

在生物医学研究领域&#xff0c;抗体作为关键的实验工具&#xff0c;其质量与性能直接影响到研究结果的准确性与可靠性。随着生物技术的不断进步&#xff0c;越来越多高质量、高纯度的抗体产品被推向市场&#xff0c;助力科研人员突破研究瓶颈。其中&#xff0c;BioSIM 抗人 DK…

作者头像 李华
网站建设 2026/6/25 7:57:34

Linly-Talker与Azure AI、AWS Polly的集成方案探讨

Linly-Talker与Azure AI、AWS Polly的集成方案探讨 在虚拟主播、智能客服和企业数字员工逐渐成为主流交互方式的今天&#xff0c;如何快速构建一个自然、拟人化且具备实时对话能力的数字人系统&#xff0c;是许多开发者和企业的共同挑战。语音作为人机交互中最直接的媒介之一&a…

作者头像 李华
网站建设 2026/6/18 18:15:16

PaddlePaddle与TensorFlow对比评测:基于docker安装的便捷性分析

PaddlePaddle与TensorFlow对比评测&#xff1a;基于Docker安装的便捷性分析 在AI技术加速落地的今天&#xff0c;一个现实问题始终困扰着开发者&#xff1a;为什么同一个模型&#xff0c;在开发机上跑得好好的&#xff0c;部署到服务器却频频报错&#xff1f;归根结底&#xff…

作者头像 李华
网站建设 2026/6/25 10:23:15

❤简介--渐进式框架

一、Vue 是一个框架&#xff0c;也是一个生态。Vue 框架非常灵活。根据我们的需求场景&#xff0c;我们可以用不同的方式使用 Vue&#xff1a;1️⃣可以作为 Web Components&#xff08;网页组件&#xff1a;如一个弹窗、一个日历、一个评论框&#xff09;在任何页面中嵌入2️⃣…

作者头像 李华