- 博客(24)
- 收藏
- 关注
原创 C++ 中 nullptr 的使用与实践:从陷阱到最佳实践
类型安全:消除空指针与整型的混淆,避免函数重载歧义。语义清晰:明确表达“空指针”的意图,提升代码可读性。兼容性:可隐式转换为任意指针类型,无需显式强制转换。现代 C++ 的推荐实践:在 C++11 及后续标准中,优先使用 nullptr 表示空指针,弃用 NULL 和 0 的相关用法。这一改进使代码更健壮,减少因类型隐式转换导致的潜在错误。
2025-11-07 19:16:41
860
原创 C++ :C宏函数的升级:内联函数inline
宏函数是C/C++中使用#define预处理指令定义的代码片段,通过文本替换的方式在编译前替换到源代码中。提高代码效率(避免函数调用开销)、简化重复代码、实现条件编译等。在项目中,经常把一些短小而又频繁使用的函数写成宏函数(函数体非常短小或者需要频繁调用的函数:如MAX,MIN等,),这是由于宏函数没有普通函数参数压栈、跳转、返回等的开销,可以提高程序的效率。
2025-11-04 23:30:28
808
3
原创 初学C++:函数大转变:缺省参数与函数重载
摘要:从C语言转向C++时,函数功能显著增强。C++引入缺省参数和函数重载两个关键特性:缺省参数允许为函数参数设置默认值,简化函数调用;函数重载支持同名函数处理不同类型参数,提升代码可读性和灵活性。这些特性使C++函数能"理解"上下文,无需为相似功能创建不同函数名。掌握这些特性是从C转向C++思维的关键,也是学习面向对象编程的重要基础(约120字)。
2025-10-31 19:47:42
861
原创 基于C语言上,面向对象语言:C++基础(学完C语言后再看)
大家好,这里是彩妙呀~当你熟练掌握C语言后,你就可以进入C++的世界啦。而C++并非一门全新的语言,他是C语言的自然演进与扩展,它在保留C语言高效、灵活特性的基础上,引入了的核心思想。所以,C++不仅仅是一门"C语言+面向对象"的语言,它更是一种编程思维的转变——从过程式编程转向面向对象的设计理念。这些特性使C++成为开发大型、复杂、可维护软件系统的理想选择。本教程将帮助你从C语言的熟练使用者,顺利过渡到C++的高效开发者。
2025-10-30 23:50:11
753
4
原创 庖丁解牛:数组操作与内存优化的代码解剖课
本文全面介绍了C语言中的数组概念与使用方法。文章首先解释了数组作为相同类型元素集合的基本特性,包括一维数组的创建、初始化和访问方式,重点讲解了元素索引从0开始的规则和内存连续存储的特点。随后详细阐述了二维数组的行列结构、初始化方法及内存存储方式,通过代码示例展示了元素访问和遍历技巧。文章还揭示了数组与指针的底层关系,演示了如何通过指针操作数组元素。最后预告了后续将深入讲解指针数组等内容,为读者系统掌握数组这一基础数据结构提供了实用指导。
2025-09-24 00:11:20
776
原创 操作系统中的Linux:操作系统概述---> (深入浅出)从入门到精通
大家好,这里是彩妙呀~在学完Linux基本知识以及几个常用的工具后,我们就要进入一个更深层次的话题---操作系统。在本篇文章,我会带着大家从零开始在linux角度中认识操作系统。
2025-09-09 09:58:10
769
原创 Vim编辑器详解:从入门到高效使用
在Linux中,如果你想安装软件。最推荐需要软件包。这是因为:在Linux环境下,安装软件的传统方法是下载程序的源代码手动编译生成可执行文件。但是这种方法对于刚学习Linux的小白不太友好,因为其操作过程繁琐且容易出错(尤其是涉及到复杂依赖(比如外部库,环境配置,工具链等))且还需要你自己去自行解决这一系列问题。而为了简化这一过程,出现了“软件包”。PS:安装软件的本质就是下载对应应用的压缩包,并解压到当前环境(linux/windows)。
2025-08-03 11:36:44
823
3
原创 Linux - 权限的理解(深入浅出,详细细微)
本文系统介绍了Linux权限管理机制,涵盖核心概念、操作命令和权限设置方法。主要内容包括:1. Linux权限基础:通过rwx权限控制用户、组和其他用户对文件/目录的访问;2. 用户管理:区分root和普通用户,讲解su/sudo命令切换与提权;3. 权限设置:详细说明chmod(字符/数字模式)、chown、chgrp等命令,以及umask默认权限设置;4. 特殊机制:重点解析目录权限的特殊性和粘滞位(t)的作用,防止共享目录中的文件被误删。文章提供了大量实用示例,帮助读者掌握Linux系统安全管理的核心
2025-07-29 19:26:17
1200
3
原创 Linux命令大全-从入门到精通
在Windows系统里,文件就是保存在硬盘上的数据,比如文档、图片或程序。但在Linux中,"文件"的概念要广泛得多,它实际上是一个统一的资源访问接口普通文件( - ):这就是你熟悉的文件,比如文本文件、图片、视频或程序。你可以用cat查看内容,cp复制,rm删除。例如:cathello.txt# 查看文本文件内容目录( d ):在Linux里,目录也是一个”文件”,只不过它存储的是其他文件的位置。你可以用ls查看目录内容,cd进入目录。例如:ls/home。
2025-07-29 15:34:37
1031
2
原创 算术操作符与类型转换:从基础到精通
在先前的文章中,我们已经学习并掌握了变量如何存储数据以及不同类型的基本特性。然而,编程的魅力远不止于静态地存储数据——真正的魔法发生在数据被动态操作的瞬间。而这一切的核心,正是运算符与数据类型转换。当我们谈论运算符时,实际上是在讨论如何让程序“思考”:通过算术运算符处理数值、用比较运算符判断逻辑关系、借位运算符优化底层操作……这些看似简单的符号,构成了程序逻辑的基石。
2025-06-06 00:57:17
1392
原创 C语言数据类型与变量--从原理到实战(炒鸡详解)
变量定义是指在程序中声明变量并分配内存空间的过程。也就是说,在我们想要创建一个新的数据这个是什么类型的叫什么名字的变量,可以追加这个变量初始的值是多少。匈牙利命名法是一种常见的命名约定,通过前缀表示变量类型.而其创建一个变量的基本语法如下:类型说明符 变量名 [ = 初始值];例如:// i表示整型// f表示浮点型// c表示字符型//d表示bool型变量命名规则是编程中的基本规范:变量名必须以字母或下划线开头。变量名可以包含字母数字和下划线。变量名区分大小写(如age和Age。
2025-05-31 22:55:04
713
原创 《数据结构C语言版》— 栈与队列全攻略(详解)
栈(Stack)是一种线性数据结构,遵循后进先出(LIFO, Last In First Out)原则。最后加入的元素最先被移除,就像汉诺塔,叠盘子,垒汉堡一样。LIFO 原则:最后一个插入的元素最先被访问。操作受限:仅允许在栈顶操作,不允许随机访问。动态/静态实现:可通过数组(静态内存)或链表(动态内存)实现。今天咱们跟着彩妙,来了场说走就走的旅行,目的地嘛,就是栈与队列的世界。想象一下,栈就像一个神奇的魔法盒子,后进先出的原则让它充满了神秘感,你最后放进去的东西总是最先蹦跶出来打个招呼。
2025-05-07 01:57:33
1169
2
原创 使用C语言实现猜数游戏
是最经典的编程小游戏之一。游戏规则非常简单:计算机会随机生成1-100的整数玩家输入猜测的数字计算机会提示"猜大了"或"猜小了"直到猜中数字,显示恭喜信息并统计猜测次数。
2025-03-17 15:28:07
466
原创 《 数 据 结 构 》--- 顺序表与链表 超详解 !
顺序表和链表是数据结构的基石,但很多新手会被它们的概念和代码绕晕。今天,我们抛开复杂的理论,用最简单的代码示例,来带你一步步实现顺序表和链表的核心操作。顺序表的增删查改链表的创建、插入、删除两种结构的适用场景所有代码均用C语言实现,注释详细,新手友好!顺序表(Sequence List)是用一段物理地址连续的存储单元(通常为数组)依次存储 数据元素的线性结构。逻辑相邻的元素在物理存储上也相邻。支持随机访问(通过下标直接访问元素)。链表通过指针将一组离散的节点串联成逻辑上的线性序列。节点结构。
2025-03-15 21:39:24
1006
4
原创 C语言入坑篇:C语言常见的概念
c语言,被称为 “万语之母”,自1972年诞生以来,就成为了学习计算机和写代码的小伙伴们的必经之路。它能让你和电脑的内心世界对话,无论是开发软件还是搞懂电脑是怎么运作的,C语言都能帮上大忙。而现在,彩妙将带你走进编程的世界,揭开神秘代码的面纱,一起探索创造的无限可能,开启一段充满挑战与乐趣的旅程。本篇文章不会这么干,大家可以慢慢看。
2025-01-10 21:14:05
914
原创 C语言--自定义类型:联合与枚举
大家好,这里是彩妙呀,今天给大家带来的是 --> 自定义类型的讲解。我们在学习C语言的过程中,或多或少不可避免地会接触到各种数据类型,比如我们熟知的基本数据类型intchar等。然而,当需要处理更复杂的数据或者更大规模的项目时,这些基本数据类型就显得力不从心。结构体联合体(Unions)和枚举体在这里,彩妙 补全剩下两个自定义结构体:联合与枚举。废话不多说,让我们开始吧!联合体enum 枚举类型(性别,星期)对象1, //枚举常量 - 0对象2, //枚举常量 - 1。
2024-10-11 16:30:35
766
3
原创 C语言--自定义类型:结构体(超详解)
大家好,这里是彩妙呀,今天给大家带来的是 --> 自定义类型的讲解。我们在学习C语言的过程中,或多或少不可避免地会接触到各种数据类型,比如我们熟知的基本数据类型intchar等。然而,当需要处理更复杂的数据或者更大规模的项目时,这些基本数据类型就显得力不从心。结构体联合体(Unions)和枚举体这里,彩妙 将详细介绍这 三种 自定义类型之一:结构体的定义、使用方式及它们的应用场景。废话不多说,让我们开始吧!struct name // 结构体类型的名字value-list;// 结构体内部成员。
2024-07-10 12:26:37
1464
9
原创 【c语言】详解 整数 与 浮点数 在内存中的存储
对于 int 这种跨越多个字节的程序对象,我们有两个规则:1、这个对象的地址是什么?2、在内存中如何去排列这些字节?第一个很好理解,地址就是存储对象的地方,我们通常用4字节、8字节大小来表示一个对象的地址例如:假设 int x 在32位的环境中运行 :x 的4个字节就会存储至的位置上第二个问题就是如何去排列这些字节。这就要引出大端、小端的知识。
2024-05-01 17:30:19
772
2
原创 详解字符函数<ctype.h>
函数的声明:(其中,C 是要检查的字符)根据标准ASCII字符集,控制字符的ASCII 编码介于0x00 (NUL)和0x1f (US)之间,以及0x7f (DEL)。如果判断的字符 C 的ASCII编码处于控制字符之内,则函数返回一个非0值,反之返回0。判断字符 C 是否为控制字符( 即字符C 的 ASCII值在 0 ~ 31)。char ch;printf("请输入一个字符: ");printf("'%c' 是一个控制字符。\n", ch);
2024-04-21 22:29:50
1557
4
原创 《C语言》--指针->从初阶道进阶 (初阶)
指针是作为c语言中的重难点,也是一位程序员必须学会的知识点之一。其本质上是一种变量,它存储了另一个变量的""内存地址""。总的来说:指针就是地址,口语中说的指针通常指的是指针变量。那我们如何理解指针这个抽象概念呢?
2024-03-26 23:05:55
1144
原创 C语言中的分支循环语句(循环语句)
在上文我为大家介绍了选择结构的分类及其用法,而本篇,将为大家介绍循环结构的分类及其用法。在循环结构中,主要包括:1 循环语句 while循环 for循环 do-while循环(循环体)goto循环2 break语句 continue语句。
2024-01-23 11:17:28
1009
1
原创 时间复杂度与空间复杂度
在了解了c/c++语言后,就开始了数据结构的学习。而学习数据结构的第一部就是去了解时间复杂度与空间复杂度。本文就浅谈一下两者相关的知识。
2023-11-30 12:37:13
423
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅