首页 > 编程语言 >C++ 数组作为函数参数示例

C++ 数组作为函数参数示例

时间:2024-07-18 09:18:38浏览次数:11  
标签:const 示例 int C++ 函数参数 数组

C++ 数组作为函数参数示例:

#include <iostream>

static void print(const int* beg, const int* end)
{
    while (beg != end)
    {
        std::cout << *beg++ << std::endl;
    }
}

static void print(const int* arr, const size_t size)
{
    for (size_t i = 0; i != size; ++i)
    {
        std::cout << arr[i] << std::endl;
    }
}

// 数组引用形参
static void print(int(&arr)[2])
{
    /*note:
      f(int& arr[2]) // 错误:将 arr 声明成引用的数组
      f(int (&arr)[2] // 正确: arr 是具有10个整数的整型数组的引用
    */

    for (auto elem : arr)
    {
        std::cout << elem << std::endl;
    }
}

int main()
{
    int j[2] = { 0, 1 };
    std::cout << "遍历方式一" << std::endl;
    print(std::begin(j), std::end(j));
    std::cout << "遍历方式二" << std::endl;
    print(j, std::end(j) - std::begin(j));
    std::cout << "数组引用形参" << std::endl;
    print(j);

    return 0;
}

输出:

遍历方式一
0
1
遍历方式二
0
1
数组引用形参
0
1




参考:《C++ Primer》 P196

标签:const,示例,int,C++,函数参数,数组
From: https://www.cnblogs.com/huvjie/p/18308726

相关文章

  • C/C++ 逻辑表达式的注意事项
    在C/C++中,逻辑表达式是用于控制程序流程的重要工具,尤其是在条件语句(如if、while、for等)中。正确使用逻辑表达式对于编写高效、易于理解的代码至关重要。以下是一些使用C/C++逻辑表达式时的注意事项:运算符优先级:逻辑运算符(&&、||、!)具有不同的优先级。!(逻辑非)具有较高的优......
  • C++之动态内存分配
    目录(1)动态内存分配概述A.C++内存空间模型B.What(什么是动态内存分配)C.Why(为什么要进行动态内存分配)D.How(如何进行动态内存分配)(2)定位new运算符A.What(什么是定位new运算符)B.Why(定位new运算符的作用)C.How(如何使用定位new运算符)(3)重载new和delete(1)......
  • 【python学习】第三方库之tensorflow的定义、功能、使用场景、代码示例和解释
    引言tensorFlow是一个开源的软件库,最初由GoogleBrain团队的研究员和工程师开发,用于数值计算和大规模机器学习tensorFlow提供了丰富的API来支持各种计算任务,并且能够轻松地在多种计算设备上进行部署,包括CPU、GPU和TPU文章目录引言一、安装`tensorflow`第三方......
  • uniapp(全端兼容) - 最新详细实现 “卡片式堆叠“ 轮播图效果,堆叠在一起的轮播图片可
    效果图在uni-app微信小程序/手机h5网页网站/安卓app/苹果app/支付宝小程序/nvue等(全平台完美兼容)开发中,实现uniApp各端都兼容的图片堆叠轮播图功能,层叠轮播插件,详细实现上下层叠轮播图并且在全平台通用兼容,卡片叠加在一起的轮播翻滚,错开叠加来回拖曳左右滚动切换,支持修改......
  • C++--accumulate介绍
    在C++中,accumulate是一个用于对容器中的元素进行累加操作的函数模板,位于头文件中。它允许你对容器(如vector或array)中的元素进行累加运算,并返回累加的结果。源代码展示template<classInputIterator,classType>Typeaccumulate(InputIterator_First,//开始迭代......
  • C++:哈希表特性及开散列哈希表的模拟实现
    目录一、unordered_map1.1特性1.2接口1.21构造函数1.22 iteratorfind(constK& key)1.23 insert1.24 operator[]1.25 erase1.26find1.3哈希概念1.31闭散列哈希表1.32开散列哈希表二、部分功能模拟实现hashtable.hunordered_map.hunordered_set.h......
  • 真的求求点赞+关注+收藏了!!(c++小游戏3)(还有其它的)
    13、球球大作战//奇怪的游戏#include<bits/stdc++.h>#include<windows.h>#include<conio.h>usingnamespacestd;voidpass(){CONSOLE_CURSOR_INFOcursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);}intjj......
  • Linux C++ 059-设计模式之备忘录模式
    LinuxC++059-设计模式之备忘录模式本节关键字:Linux、C++、设计模式、备忘录模式相关库函数:概念备忘录模式(MementoPattern),又叫做快照模式(SnapshotPattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获一个......
  • Linux C++ 060-设计模式之单例模式
    LinuxC++060-设计模式之单例模式本节关键字:Linux、C++、设计模式、单例模式相关库函数:概念单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对......
  • C++ 基础 - 3 - 数据类型
    简言什么是数据类型?数据类型(DataTypes)是变量或函数返回值的属性,它们决定了变量可以存储哪种类型的数据,以及这些数据如何被解释和存储在计算机的内存中。C++是一种静态类型语言,这意味着每个变量都必须在使用前声明其类型。C++提供了丰富的数据类型,可以分为几大类:基本......