Lion 莱恩呀
一个热爱分享高性能服务器后台开发知识的博主,目标是通过理论与代码实践的结合,让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域,包括C/C++、Linux、Nginx、MySQL、Redis、fastdfs、kafka、Docker、TCP/IP、协程、DPDK等。
展开
-
【050】还在手写循环?正确使用 C++ STL 遍历算法能事半功倍!
本文介绍了 C++ 标准模板库 (STL) 算法,通过 `for_each` 和 `transform` 两个常用遍历算法的详细讲解和示例,展示了 STL 算法如何简化代码、提高效率。掌握STL 算法,能够告别手写循环的繁琐,用简洁高效的代码完成各种数据处理任务。原创 2025-03-31 09:00:00 · 16 阅读 · 0 评论 -
【049】秒懂C++ STL算法:函数对象、谓词及内建函数对象
高效的C++编程离不开对标准模板库(STL)算法的熟练运用。 本文将深入浅出地讲解STL算法中函数对象、谓词以及Lambda表达式的使用方法。 掌握这些技巧,能让你编写出更简洁、高效且可读性强的C++代码。原创 2024-12-23 09:00:00 · 813 阅读 · 1 评论 -
【048】C++ STL容器的使用时机:何时使用哪个?
C++ STL 容器是高效编程的关键,但选择合适的容器至关重要。本文将深入探讨 STL 容器的三大类别:顺序容器、关联容器和无序关联容器,详细分析 `vector`、`list`、`deque`、`set`、`map` 等常用容器的特性、性能差异及适用场景。我们将比较不同容器在内存管理、随机访问、插入/删除操作等方面的优劣,并提供最佳实践和使用技巧,帮助开发者根据实际需求选择最合适的容器,从而编写出高效、可靠的 C++ 代码。 最后,还会推荐一些学习资源,帮助读者更深入地学习 STL 容器。原创 2024-12-03 09:00:00 · 1613 阅读 · 0 评论 -
【047】你真的会用C++ map和multimap吗?
本文主要介绍C++ STL中map和multimap容器的用法,包括赋值方法,重点分析了map的operator[]可能导致的意外插入问题,以及如何使用find()方法避免此问题。通过一个具体的员工分配案例,演示了multimap在处理一对多关系时的优势。推荐emplace高效的插入方式。避免在map中直接使用[]操作符进行元素访问,除非确认键值存在或需要创建新元素。multimap容器非常适合处理一对多映射关系的场景。原创 2024-11-26 09:00:00 · 676 阅读 · 0 评论 -
从新手到专业人士:探索 C++ STL 以获得终极性能
本文详细介绍了C++STL的组件和用法,包括容器、算法、迭代器和函数对象,强调了选择正确容器、优化算法和迭代器使用以提升性能。同时,讨论了STL在高性能服务器后台开发中的应用,涵盖最佳实践、常见陷阱和处理大规模数据集的方法。此外,还探讨了C++11、C++14和C++17中STL的改进,以及如何结合现代C++特性如lambda表达式和多线程来实现终极性能。原创 2023-07-25 21:03:44 · 1941 阅读 · 19 评论 -
7 种单例模式实现方法大揭秘:从饿汉式到Meyers‘ Singleton
单例模式是软件设计中至关重要的一环,旨在确保一个类只有一个实例并提供全局访问点。它通过限制实例化的数量来避免资源浪费和不一致性问题,提高系统的灵活性和性能。本篇文章将全面探讨单例模式的各种实现方式,包括饿汉式、懒汉式、双重检查锁、Meyers' Singleton以及使用智能指针的方法。我们将深入分析每种实现的优缺点,帮助你在不同场景下做出最佳选择,并确保线程安全与资源管理的高效。通过本篇指南,你将掌握实现单例模式的最佳实践,提升你的编程技巧。原创 2023-07-11 23:28:48 · 525 阅读 · 2 评论 -
【046】C++中map和multimap容器全面解析:深入学习,轻松掌握
在C++中,map和multimap容器是非常重要的数据结构,它们提供了一种键值对的映射关系,可以高效地组织和访问数据。map容器中的每个元素都包含一个键和一个值,而multimap容器允许键重复。这两种容器在实际项目中广泛应用,特别适合需要快速查找和插入元素的场景。其底层实现采用了红黑树等高效的数据结构,map和multimap容器在处理大量数据时具有良好的性能表现。它们也提供了丰富的操作方法和函数,可以轻松地对容器中的数据进行插入、删除、查找和遍历操作。原创 2024-01-13 18:44:50 · 3409 阅读 · 25 评论 -
【045】高效排序与存储:C++ STL中的set与multiset详解
在C++的标准模板库(STL)中,set和multiset容器是处理有序数据的强大工具。它们不仅提供高效的元素插入、删除和查找操作,还能根据需要支持元素的唯一性或重复性。本文将详细探讨这两种容器的基本概念、常用API及其实际应用。通过对比set与multiset的特性,读者将能更好地理解如何在不同场景中选择和使用这些容器。无论是初学者还是有经验的程序员,都能从中获得宝贵的知识和技巧。原创 2023-07-26 08:30:00 · 566 阅读 · 2 评论 -
【044】解密C++ STL:深入理解并使用 list 容器
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相较于vector的连续线性空间,list就显得负责许多,它的好处是每次插入或者删除一个元素,就是配置或者释放一个元素的空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。原创 2023-07-23 16:05:07 · 864 阅读 · 7 评论 -
【043】解密C++ STL:深入理解并使用queue容器
深入探讨queue容器的核心特性及其底层实现。queue是一种遵循先进先出(FIFO)原则的数据结构,适用于需要按照顺序处理数据的场景,例如任务调度和广度优先搜索。我们将分析其不同的实现方式,如数组、链表和环形缓冲区,以及这些实现对性能的影响。此外,本文还将展示queue容器的常用API及其实际应用案例,包括高效算法和生产者-消费者模型,帮助读者更好地理解和利用这一重要数据结构。原创 2023-07-20 22:12:06 · 619 阅读 · 10 评论 -
【042】从零开始:逐步学习使用C++ STL中的stack容器
stack是一种先进后出(First In Last OutFILO)的数据结构,它只有一个出口,形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。有元素入栈的操作称为:push,将元素推出stack 的操作称为pop。Stack所有元素的进出都必须符合"先进后出"的条件,只有stack顶端的元素,才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器。深入讲解了C++ STL中的。原创 2023-07-18 23:06:12 · 1365 阅读 · 1 评论 -
【041】巧妙地穿梭双端:掌握C++ STL中deque容器的强大功能
在C++标准模板库中,deque(双端队列)作为一种灵活且高效的数据结构,为开发者提供了在两端快速插入和删除元素的能力。与vector相比,deque在内存管理和操作性能上有着显著的优势,使其在处理需要频繁修改的数据场景中表现更为出色。本文将深入探讨deque的基本特性、实现原理、常用API及其在实际应用中的价值,帮助开发者充分理解并利用这一强大的容器。通过实例分析,我们将展示如何在竞技类项目中运用deque进行高效的数据管理和处理。让我们一同揭开deque的神秘面纱,掌握这一高效的编程工具。原创 2023-07-16 18:00:15 · 657 阅读 · 9 评论 -
【040】C++中最强大的动态数组:掌握 vector 容器
在C++编程中,Vector容器作为一种高效的动态数组,实现了灵活的数据管理与操作能力。本文将全面深入地探讨Vector的基本结构、常用API及其高效应用。我们将从Vector的基本构造和数据存取操作开始,然后介绍如何使用标准库算法对数据进行排序和管理。除此之外,还将揭示一些优化技巧,如未雨绸缪机制和空间收缩方法,以提升程序性能。通过这些内容,读者将能够全面掌握C++ Vector的特性和应用,为高效编程打下坚实基础。原创 2023-07-16 00:58:14 · 882 阅读 · 1 评论 -
【039】探索C++ STL string容器的基本操作与鲜为人知的技巧
C++的标准模板库(STL)是现代编程的强大工具,而string容器在处理文本数据时尤为重要。本篇文章将详细介绍STL的基本概念和其六大核心组件,重点解析string容器的构造、赋值、拼接、查找、替换等常用操作。我们还将探讨string与C语言风格字符串的转换技巧及其实际应用示例。通过本篇指南,你将全面掌握string容器的操作方法,提升编程效率和代码质量。原创 2023-07-12 22:44:57 · 366 阅读 · 12 评论 -
【038】C++异常机制全景图:如何处理程序运行时错误?
C++异常机制是处理程序运行时错误的强大工具,它通过提供结构化的错误处理方式来提升程序的健壮性。本文将详细解析异常的基本概念、抛出与捕获的语法、栈解旋的机制以及异常的接口声明。通过对C++异常处理的深入探讨,您将能够掌握如何有效地捕获和处理各种异常情况,并了解自定义异常和标准异常的使用方法。接下来,让我们一步步探索如何在C++中优雅地管理异常。原创 2023-07-08 23:14:04 · 1054 阅读 · 4 评论 -
【037】C++中的四种强制类型转换:static_cast、const_cast、dynamic_cast和reinterpret_cast详解
在学习C++类型转换之前,了解正确的转换方式至关重要。本文深入探讨了C++中的类型转换方法,从隐式转换到动态转换,展示了安全转换的重要性。通过上行和下行转换的比较,引领读者探寻类型转换的安全边界。静态转换、动态转换和常量转换的细致解读,助您在C++编程中运用恰当的转换技巧。原创 2023-07-05 23:19:14 · 765 阅读 · 3 评论 -
【036】C++ 类模板实战:模仿vector容器实现自定义数组类
在C++编程的世界中,类模板如同一把瑞士军刀,为我们提供了一种强大的通用编程机制。从创建通用类到实现数据类型参数化,类模板的魅力无处不在。让我们深入探索类模板的奥秘,掌握如何设计、实现以及继承这一精妙的编程工具。原创 2023-07-04 23:25:34 · 522 阅读 · 1 评论 -
【035】深入理解C++类模板(最全讲解):从基础到实战
在现代C++编程中,类模板是一种强大的工具,能够让程序员编写通用的类,以处理各种不同类型的数据。本文将深入探讨C++类模板的核心概念和用法,从基础定义到实际应用,帮助读者全面理解如何利用类模板提升代码的灵活性和复用性。无论是如何定义和实例化类模板,还是如何处理类模板中的成员函数和友元,都将在本文中得到详细讲解。原创 2023-07-03 08:53:27 · 8010 阅读 · 2 评论 -
【034】C++函数模板的一切你都知道了吗?深入探索泛型编程的核心
在现代C++编程中,函数模板作为一种强大的工具,不仅能够显著减少代码重复,还能提升程序的灵活性和可维护性。本文深入探讨了C++函数模板的定义、使用方法以及实际应用技巧,旨在帮助读者从基础到高级层次掌握这一关键技术,为泛型编程提供坚实的理论基础和实用指南。原创 2023-07-02 14:03:16 · 686 阅读 · 9 评论 -
【033】C++ 多态技术深度解析:理解虚函数与纯虚函数(最全讲解)
虚函数是一种在基类中声明的函数,它在派生类中可以被重写(覆盖)的函数。在基类中使用关键字“virtual”声明的函数就是虚函数。虚函数通过动态绑定实现了多态性,使得程序可以根据实际对象类型来调用相应的函数。在运行时,系统会根据被调用的对象的类型来确定调用哪一个重写函数。虚函数是C++中实现多态的关键所在。定义方式:在成员函数前面加virtual修饰。注意:子类重写父类的虚函数时,返回值类型、参数类型、个数顺序 必须完全一致。多态的条件:有继承、子类重写父类的虚函数、父类指针指向子类空间。原创 2023-06-26 16:38:32 · 1596 阅读 · 9 评论 -
【032】C++高级开发:深入理解C++继承机制(最全讲解)
C++继承机制是面向对象编程的核心概念之一,它通过子类继承父类的属性和方法实现代码复用和扩展。以下是C++继承机制的总结:(1) 继承类型。C++中有3种继承类型:公有继承、私有继承和保护继承。(4)虚继承。当存在多个继承路径时,可能会导致同一个父类在内存中有多个拷贝,造成浪费和不一致。此时可以使用虚继承(virtual inheritance),让所有从同一基类派生出来的子类共享该基类,在内存中只保留一个拷贝。(5)多重继承。C++允许同时从多个父类继承属性和方法,称为多重继承。但需要注意解决命原创 2023-06-25 16:06:21 · 797 阅读 · 7 评论 -
【031】从基础到实践:深入解析C++运算符重载全攻略
C++重载运算符是一种允许程序员自定义运算符行为的机制。通过重载运算符,我们可以定义自己的类类型,并使其支持像加、减、乘等运算符,以及比较运算符等。在 C++ 中,有些运算符可以被重载(如 +, -, *, / 等),而有些则不能被重载(如 .,?: 等)。对于可以被重载的运算符,我们只需要按照一定的规则来实现相应的函数即可。重载函数必须是一个成员函数或者友元函数。如果是成员函数,则第一个参数必须是当前对象的引用或指针;如果是友元函数,则没有这个限制。不同的运算符要求不同的参数个数和类型。原创 2023-06-23 15:35:49 · 711 阅读 · 11 评论 -
【030】深入理解C++中的友元机制(friend)与最佳实践
C++中,友元(friend)是一种机制,它允许一个类的非成员函数或另一个类访问该类的私有成员。友元可以在类定义中声明,在类定义外部实现。类的主要特点之一是数据隐藏,即类的私有成员无法在类的外部作用域之外访问。但是有时候需要在类的外部访问类的私有成员,因此出现了友元函数;友元函数是一种特权函数,允许访问私有成员。可以把一个全局函数、或者类的成员函数、甚至整个类声明为友元。需要注意的是,友元机制破坏了类的封装性,因此应该谨慎使用。如果过度使用友元机制,会导致代码难以维护和扩展。原创 2023-06-21 22:58:20 · 1157 阅读 · 4 评论 -
【029】C++类对象中的静态成员和 this 指针详解
静态成员是类的属性,属于整个类而不是类的对象。可以在任何对象中访问它们,但不需要创建实例即可使用它们。使用静态成员变量时,必须在其前面加上“类名::”来指定其作用域。例如:ClassName::staticMemberVariable。静态成员函数也属于整个类,可以直接通过类名调用,并且不能访问非静态成员变量和函数。静态成员变量只有一个副本,在所有对象之间共享。当类的一个对象修改了这个变量时,其他对象也会受到影响。this 指针是指向当前对象的指针,在成员函数内部使用。原创 2023-06-18 22:33:58 · 480 阅读 · 0 评论 -
【028】深入理解C++ 类和对象:构造、析构、拷贝构造、初始化列表 详解(最全讲解)
C++构造函数是一种特殊的成员函数,用于初始化类的对象。它们具有与类名称相同的名称,并且不返回任何值(包括void)。它们可以带有参数或不带参数,根据需要进行重载。当创建一个类对象时,构造函数会被自动调用。如果没有定义构造函数,则编译器会提供一个默认的构造函数。默认构造函数不执行任何操作,但确保对象被正确初始化。在构造函数中,可以对数据成员进行初始化、分配内存空间和执行其他必要的操作类实例化对象的时候,系统自动调用构造函数,完成对象的初始化。原创 2023-06-15 23:06:35 · 876 阅读 · 9 评论 -
【027】C++类和对象的基本概念:封装、定义、设计与实现
本文深入浅出地介绍了 C++ 类,从封装性、定义、设计到实现,循序渐进地讲解了 C++ 类在面向对象编程中的重要作用。文章首先阐述了类封装性的概念和优势,包括数据隐藏、可控制性、简化编程和提高安全性。接着,详细讲解了 C++ 类定义的语法和格式,并通过实例演示了如何定义一个类。随后,文章以 Person 和 Cube 类为例,展示了如何设计一个类,并提供了设计步骤和代码示例。最后,文章介绍了类成员函数在类内和类外实现的方法,以及如何在多文件中实现类,并总结了 C++ 类在面向对象编程中的应用和优势。原创 2023-06-14 09:22:29 · 575 阅读 · 9 评论 -
【026】C++ 函数进阶:内联函数、重载、默认参数、占位参数
本文深入浅出地介绍了 C++ 中函数的几个重要概念:内联函数、函数重载、默认参数、占位参数以及 extern "C。首先,文章详细阐述了内联函数的定义、语法、使用场景以及注意事项,并与宏函数进行了对比。接着,文章介绍了函数重载的概念、实现原理以及使用条件,并解释了为什么返回值不能作为重载的条件。然后,文章讲解了函数默认参数的定义、使用方法以及需要注意的细节,并展示了默认参数与函数重载同时出现时可能产生的二义性问题。此外,文章还介绍了占位参数的概念、作用以及使用场景,阐述了 extern "C 的作用原创 2023-06-13 08:27:55 · 662 阅读 · 6 评论 -
【025】C++对C的扩展之引用(reference):让你的代码“指哪打哪”
引用是一个别名,可以将一个变量与另一个变量关联起来。通过引用,我们可以使用两个不同的名称访问相同的数据。引用必须在定义时初始化,一旦引用被初始化为一个对象,它就不能再绑定到另一个对象上了。引用作为函数参数传递时,可以避免复制大型对象的开销,并且可以直接修改原始对象。可以使用const修饰符使引用成为只读引用,这样就无法通过该引用修改原始数据。引用还可以返回函数中的值或对象,在这种情况下,函数返回类型必须是引用类型。指向常量的指针和常量引用之间有所不同:前者可重新赋值而后者不能重新赋值。原创 2023-06-12 09:05:29 · 728 阅读 · 0 评论 -
【024】C++ 命名空间:代码中的“隔离墙”
C++命名空间(namespace)是一种将标识符封装起来的机制,以避免命名冲突和全局污染。通过在命名空间中定义变量、函数、类等,可以使得这些标识符只在该命名空间内可见,从而避免与其他代码产生冲突。原创 2023-06-11 12:49:54 · 538 阅读 · 2 评论 -
【023】C/C++数据结构之链表及其实战应用
链表(Linked List)是一种常见的数据结构,它由若干个节点(Node)组成,每个节点包含一个数据元素和指向下一个节点的指针。相邻两个节点之间通过指针连接起来,形成了链式结构。链表可以分为单向链表、双向链表和循环链表三种类型。其中单向链表每个节点只有一个指向下一个节点的指针;双向链表每个节点除了有指向下一个节点的指针外,还有指向前一个节点的指针;循环链表则是将最后一个节点的指针指向头结点,使得整个链条形成了一个闭环。原创 2023-06-09 09:55:54 · 909 阅读 · 0 评论 -
【022】C++的结构体、共用体以及枚举详解(最全讲解)
结构体是一种自定义的数据类型,它可以包含多个不同的数据类型的成员。结构体允许用户将相关的数据项组合在一起形成一个单独的实体,并可以对该实体进行操作。结构体通常被用于表示复杂的对象或记录,如人员信息、学生档案等等。结构体由一个或多个成员变量组成,每个成员变量都可以有不同的数据类型和名字。结构体也可以嵌套定义在其他结构体中,以实现更复杂的数据模型。在 C/C++ 语言中,结构体是一种非常重要的数据类型,在很多编程领域都得到了广泛应用。int num;char sex;int age;原创 2023-06-07 11:55:40 · 968 阅读 · 0 评论 -
【021】C/C++ 语言初学者必备:字符串处理函数入门
strlen:计算字符串的长度,即字符数组中不包括'\0'字符的字符数。strcpy:将一个字符串复制到另一个字符串中,包括'\0'在内。strncpy:将一个字符串的前n个字符复制到另一个字符串中,如果源字符串长度小于n,则会在末尾加上'\0'。strcat:将两个字符串连接起来,即将第二个字符串拼接到第一个字符串后面,并在末尾添加'\0'。strncat:将两个字符串的前n个字符连接起来,如果源字符串长度小于n,则会在末尾添加'\0'。strcmp:比较两个字符串是否相等,返回值为0表示相等。原创 2023-06-06 09:55:25 · 996 阅读 · 0 评论 -
【020】C++ 动态内存分配:new 和 delete 的正确使用
C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。原创 2023-06-05 10:36:22 · 1090 阅读 · 0 评论 -
【019】C++ 中的强大组合:指针与函数
C++中指针和函数有着紧密的联系,指针可以用来存储函数的地址,通过指针调用函数或者将函数作为参数传递给其他函数。原创 2023-06-04 11:13:54 · 1243 阅读 · 0 评论 -
【018】指针的指针: C++ 指针数组、数组指针深入解析
指针数组和数组指针是C++中比较常见的两种概念,它们都与数组和指针有关。指针数组:指针数组是一个数组,其中每个元素都是一个指针。数组指针本质上是指针变量;保存的是数组的首地址。数组指针+1跳过的是整个数组。原创 2023-06-03 20:29:26 · 1076 阅读 · 0 评论 -
【017】C++ 指针变量详解:内存访问的奥秘
对于32位平台的进程,其内存空间大小限制为4GB(2的32次方),其中1GB是操作系统保留的虚拟地址空间。因此,32位进程最多只能使用3GB的内存空间。而对于64位平台的进程,其内存空间大小限制高达16EB(2的64次方),实际上远远超过了目前可用的物理内存容量。这意味着64位进程可以利用更多的内存资源来提高应用程序性能和响应速度。系统为内存的每一个字节分配32 bit / 64 bit 的地址编码(虚拟地址),这个编号称为地址。原创 2023-05-31 09:56:43 · 2324 阅读 · 0 评论 -
【016】C++ 预处理:内存分区、变量存储、头文件、宏,你都掌握了吗?
C++预处理器是一个非常重要的编译阶段,它在源代码被编译之前对源代码进行一些操作。#define:定义宏常量或宏函数,可以提高代码的可读性和可维护性。:条件编译指令,用于根据条件选择是否编译某段代码。#include:包含头文件,将其他源代码文件中的定义导入到当前文件中以供使用。#pragma:通用预处理命令,用于指示编译器执行特定的动作或更改默认行为。#error:产生错误消息并停止编译过程。#undef:取消已定义的宏。除了上述常见预处理指令外,C++还有一些其他的预处理功能,例如。原创 2023-05-29 13:38:55 · 1152 阅读 · 0 评论 -
【015】C++ 编程的核心技能:函数,你真的了解它吗?
C++ 函数是一个可以重复使用的代码块,它们通常包含了一些指令和算法,用于实现特定的任务。函数能够提高程序的模块化程度,使代码更加清晰简洁、易于维护。函数是c语言的功能单位,实现一个功能可以封装一个函数来实现。定义函数的时候以功能为目的,根据功能去定函数的参数和返回值。返回类型:函数返回值类型函数名:函数名称参数列表:传递给函数的参数及其数据类型函数体:执行具体任务的代码块返回类型:函数返回值类型函数名:函数名称参数列表:传递给函数的参数及其数据类型。原创 2023-05-28 20:43:42 · 821 阅读 · 1 评论 -
【014】一维、二维字符数组:你不知道的C++ 字符串存储奥秘!
C++ 中的一维字符数组和二维字符数组都是常用的数据类型,它们可以存储和操作大量字符数据。初始化方式:直接赋值或循环赋值访问方式:使用下标访问(从 0 开始)初始化方式:直接赋值或循环赋值访问方式:使用双重循环遍历每个元素,先遍历行数再遍历列数。原创 2023-05-27 19:37:02 · 2000 阅读 · 1 评论 -
【013】C++数组之一维数值数组和二维数值数组的概念和操作方法
数组名和[]表示数组。将数组的个数放入[]中。用元素类型定义一个变量。数组的大小定义时必须指定,并且不可更改。int arr[5];// 定义一个包含5个整型元素的数组// 定义一个包含10个单精度浮点型元素的数组// 不指定数组大小,直接用花括号赋值// 定义一个包含100个字符元素的数组,并初始化为字符串"Hello World"以上示例中,第一个和第二个示例分别定义了一个整型和单精度浮点型的一维数值数组。第三个示例使用了花括号对数组进行初始化,编译器会自动计算出该数组大小为4。原创 2023-05-26 11:24:01 · 1689 阅读 · 1 评论