【cpp/c++ summary 语法总结】细节(作为参数时) 数组退化

news2024/12/28 5:17:16
  • 在C语言中,参数传递通常是通过值传递(pass by value)的方式进行的,这意味着当调用函数时,实际参数的值会被复制到对应的形参中。因此,函数内部操作的是这些值的副本,而不是原始变量本身。这种方式确保了函数外部的变量不会因为函数内部的操作而受到影响。
  • 但是有一个特殊情况,数组名在作为参数传递给函数时会退化为指向数组第一个元素的指针
  • 因此,实际上只是传递了一个指针,如果在函数内部再计算sizeof(arr)/sizeof(float)得不到数组真正长度。
#include <stdio.h>

void pirnt_array(float * arr){
    // 传递参数时数组退化为指针
    // sizeof(arr) 在函数内部只返回指针的大小,而不是整个数组的大小。
    for (int i = 0; i < sizeof(arr)/sizeof(float); ++i) {
        printf("%.9f %ld", arr[i],sizeof(arr));
    }
     printf("\n");
}

int main()
{
    float x[] = { 1050, 2060,3050,3090 }; 
    pirnt_array(x);//只输出两个值
    printf("%ld",sizeof(x));// 在 main 函数中,x 是一个数组类型,而不是指针
    return 0;
}
  • sizeof 是编译时运算符,返回数据类型或变量在内存中占用的字节数。以下的汇编指令 mov DWORD PTR [rbp-4], 8 将立即数 8 存储到相对于栈基址指针(rbp)偏移 -4 的位置。立即数 8 即为sizeof 计算的结果。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python生成对抗神经网络GAN预测股票及LSTMs、ARIMA对比分析ETF金融时间序列可视化

全文链接&#xff1a;https://tecdat.cn/?p38528 本文聚焦于利用生成对抗网络&#xff08;GANs&#xff09;进行金融时间序列的概率预测。介绍了一种新颖的基于经济学驱动的生成器损失函数&#xff0c;使 GANs 更适用于分类任务并置于监督学习环境中&#xff0c;能给出价格回…

常用环境部署(二十四)——Docker部署开源物联网平台Thingsboard

1、Docker和Docker-compose安装 参考网址如下&#xff1a; CENTOS8.0安装DOCKER&DOCKER-COMPOSE以及常见报错解决_centos8安装docker-compose-CSDN博客 2、 Thingsboard安装 &#xff08;1&#xff09;在/home目录下创建docker-compose.yml文件 vim /home/docker-com…

Mind 爱好者周刊 第6期 | 关于假设检验的贝叶斯因子(含R包)、高阶冥想期间的神经现象学、大脑中广泛的 β 网络、视觉和听觉审美具有不同的神经机制……

所有的研究由我的独断和偏见选出&#xff0c;单位仅标注第一单位/通讯单位&#xff1b;本篇为 12.3~12.10 期间我感兴趣的研究摘要&#xff1b;取名创意来自「科技爱好者周刊」 注&#xff1a;相比前几期以认知神经研究为主&#xff0c;本期收录了很多有趣的行为实验&#xff0…

太速科技-488-基于3U VPX的ZYNQ XC7Z100 计算主控板

基于3U VPX的ZYNQ XC7Z100 计算主控板 一、板卡概述 本板卡基于3U VPX结构 使用FPGA XC7Z100 FFG 9000 芯片。产品类似计算机主控板&#xff0c;包含以太网、USB、HDMI、EMMC\M.2存储接口。同时又有自定义的IO扩展&#xff0c;包括高速PCIe、RapidIO&#xff0c;普通LV…

【Devops】Python运维自动化之集合Set

集合Set 集合&#xff0c;简称集。由任意个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。 Python中&#xff0c;它是可变的、无序的、不重复的元素的集合。 hash表 Python中的集合&#xff08;set&#xff09;是基于哈希表&#xff08;Hash Table&#xff…

x64dbg 安装使用教程

x64dbg的安装与配置 x64dbg官网地址&#xff1a;https://x64dbg.com/#start x64dbg界面介绍 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff…

CH343等第3代USB串口芯片常见问题解答

一、概述 CH343、CH9101、CH9102等系列芯片&#xff0c;是沁恒推出的第三代USB转单串口产品&#xff0c;基于经典版CH340系列芯片进行技术革新&#xff0c;实现USB转高速异步串口&#xff0c;波特率支持最高6Mbps。芯片内部高度集成&#xff0c;外围精简&#xff0c;均提供VIO…

npm安装-详细教程

npm安装教程 第一章 Vue学习入门之 Node.js 的使用 文章目录 npm安装教程 [TOC] 前言一、npm是什么&#xff1f;二、安装、配置环境变量 1.下载并安装NodeJS2.npm配置 前言 随着时代的不断发展&#xff0c;前端学习这门技术也越来越重要&#xff0c;很多人都开启了学习前端…

【Web】2024“国城杯”网络安全挑战大赛题解

目录 Ez_Gallery 法一&#xff1a;shell盲注 法二&#xff1a;反弹shell 法三&#xff1a;响应钩子回显 Easy Jelly 法一&#xff1a;无回显XXE 法二&#xff1a;Jexl表达式RCE signal 法一&#xff1a;SSRF 法二&#xff1a;filterchain RCE Ez_Gallery 用这个bp验证…

【模型对比】ChatGPT vs Kimi vs 文心一言那个更好用?数据详细解析,找出最适合你的AI辅助工具!

在这个人工智能迅猛发展的时代&#xff0c;AI聊天助手已经深入我们的工作与生活。你是否曾在选择使用ChatGPT、Kimi或是百度的文心一言时感到一头雾水&#xff1f;每款AI都有其独特的魅力与优势&#xff0c;那么&#xff0c;究竟哪一款AI聊天助手最适合你呢&#xff1f;本文将带…

Visual Studio Community安装WebForm创建和数据连接

目录 一、安装Visual Studio Community 1.下载Visual Studio Community 2.双击安装 3.配置 二、项目创建 1.创建新项目 2.配置新项目 3.创建web窗体 4.代码分部 5.文件打开问题 三、数据库访问 1.自己先装一个sql server 2.创建实体数据模型 3.创建连接 4.修改更…

第二篇:脚手架搭建 — React 和 Express 的搭建

目录 1 React搭建2 Express搭建总结 第一篇我们介绍了开发环境的搭建过程&#xff0c;介绍了vscode、git、nodejs和mongodb的安装过程。有了基础的开发环境就需要搭建我们的前后端脚手架了。 1 React搭建 前端我们选用React框架解决界面的渲染和用户交互的问题&#xff0c;Rea…

对深度学习中的LayerNorm层重用问题的深入剖析

深度学习中的归一化技术是提升模型性能和训练稳定性的重要利器。在众多归一化方法中&#xff0c;LayerNorm (层归一化)以其独特的优势在自然语言处理等领域得到广泛应用。然而&#xff0c;在实际开发中&#xff0c;一个常见的误区是尝试重用LayerNorm层&#xff0c;这不仅会影响…

互联网、物联网的相关标准

互联网的相关标准 网络通信协议&#xff1a; HTTP&#xff08;Hypertext Transfer Protocol&#xff09;&#xff1a;用于在网络中传输文本、图像、音频和视频等数据的协议。它基于请求-响应模型&#xff0c;客户端发送请求给服务器&#xff0c;服务器返回响应。HTTPS&a…

PageHelper自定义Count查询及其优化

PageHelper自定义Count查询及其优化 文章目录 PageHelper自定义Count查询及其优化一&#xff1a;背景1.1、解决方法 二&#xff1a;利用反射判断请求参数是否有模糊查询2.1、分页不执行count2.2、思路2.3、代码示例 三&#xff1a;自定义COUNT查询SQL(只适用于单表)3.1、局限性…

【洛谷】P1223 排队接水(思路详解)

#include <iostream> #include <algorithm> #include <iomanip> using namespace std;int main() {//1. 从标准输入读取人数n&#xff0c;对应题目中在水龙头前排队接水的人数int n; cin >> n;//2. 定义数组N&#xff0c;用于存储每个人接水的时间&am…

WebDAV服务不能上传大文件,文件超过50M报错[0x800700DF]怎么办?

这个问题需要分别从服务端和客户端解决。 1.Windows客户端 解除50M文件限制&#xff0c;Windows访问Webdav服务时&#xff0c;大于50M文件提示错误[错误:0x800700DF] 部署了webdav&#xff0c;Windows10映射网络磁盘&#xff0c;传输文件超过大约50MB的文件会弹出“0x800700…

计算机视觉:学习指南

一、引言 计算机视觉作为人工智能领域的一个重要分支&#xff0c;致力于让计算机理解和解释视觉信息&#xff0c;近年来取得了令人瞩目的进展&#xff0c;广泛应用于安防监控、自动驾驶、图像编辑、医学影像分析等众多领域。从入门到精通计算机视觉需要系统地学习一系列知识和…

vue3-canvas实现在图片上框选标记(放大,缩小,移动,删除)

双图版本&#xff08;模板对比&#xff09; 业务描述&#xff1a;模板与图片对比&#xff0c;只操作模板框选的位置进行色差对比&#xff0c;传框选坐标位置给后端&#xff0c;返回对比结果显示 draw.js文件&#xff1a; 新增了 createUuid&#xff0c;和求取两个数组差集的方…

StarRocks-hive数据类型导致的分区问题

背景&#xff1a; 有个hive的表&#xff0c;是月分区的&#xff08;month_id&#xff09;&#xff0c;分区字段用的是string类型。数据量比较大&#xff0c;为了保证计算性能&#xff0c;所以把数据导入到SR里&#xff0c;构建一个内部表。但是在建表的时候想使用月分区使用pa…