
c语言、c++
文章平均质量分 82
C++,C语言
K_n_i_g_h_t_1990
拖延是种慢性毒药
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 引用
其中Type是被引用的变量的类型,name是引用的名字,var是被引用的变量的名字。例如,int &a = b;就是定义了一个int类型的引用a,并初始化为变量b。引用的定义时必须进行初始化,不能定义一个空引用,也不能定义一个指向无效地址的引用。例如,int &a;或者都是错误的,因为没有指定引用的目标。引用的初始化后不能改变引用的目标,即不能让引用指向另一个变量。例如,int &a = b;a = c;并不是让引用a指向变量c,而是让变量b的值变成和变量c一样。原创 2023-12-07 00:00:00 · 831 阅读 · 0 评论 -
C++ 中的运算符重载(三)
以便实现对象的加法和减法,即将两个对象的对应成员变量进行加法或减法运算,返回一个新的对象。这样,我们就可以实现对象的组合和分解,提高代码的灵活性和可扩展性。但是,如果我们想要对自定义类型的数据进行加法和减法运算,例如类的对象,那么我们就需要重载加法运算符。可以让我们对向量对象进行加法和减法运算,就像对内置类型的数据进行加法和减法运算一样。这样,我们就可以实现向量对象的组合和分解,提高代码的灵活性和可扩展性。这样,我们就可以实现分数对象的放大和缩小,提高代码的灵活性和可扩展性。,用于实现对象的加法和减法。原创 2023-12-07 00:00:00 · 237 阅读 · 0 评论 -
C++ 中的运算符重载(二)
运算符重载是一种非常实用和有趣的特性,它可以让我们对自定义类型的数据进行各种操作,从而实现一些复杂和高级的功能。可以让我们对字符串对象进行拷贝赋值,就像对内置类型的数据进行赋值一样。这样,我们就可以实现字符串对象的深拷贝,避免出现一些潜在的问题,例如内存泄漏、空指针、重复释放等。可以让我们对点对象进行输入和输出,就像对内置类型的数据进行输入和输出一样。这样,我们就可以实现点对象的交互和显示,提高用户的体验和友好性。从上面的代码可以看出,重载赋值运算符。从上面的代码可以看出,重载插入运算符。原创 2023-12-06 10:00:09 · 279 阅读 · 0 评论 -
C++ 中的运算符重载(一)
(user-defined type)的数据进行操作,例如类的对象,那么内置运算符就可能无法满足我们的需求。例如,如果我们定义了一个。原创 2023-12-06 09:45:25 · 182 阅读 · 0 评论 -
C 中的枚举
简要回顾最简单地说,枚举是宏的一小步。声明枚举时,编译器允许您在最后一个常量后面放置一个逗号作为礼貌。然后,您可以将其用作color枚举的基本思想是使用它们来表达一组相关值。命名空间和声明struct与和类似unionenum类型被放置到单独的“tags”命名空间中,因此您必须继续使用enum前缀。同样,您也可以选择typedef然而,与structand不同的是union调试器优势如果 c 只是一个整数,这比必须查找 2 对应的颜色要好得多。名称冲突。原创 2023-12-05 00:00:00 · 151 阅读 · 0 评论 -
C 编程中使用字符串
C 中的字符串是使用字符数组来操作的。数组中的每个字符对应字符串的一个元素,字符串的结尾由空字符('\0')标记。这个空字符至关重要,因为它表示字符串的结尾,并允许函数确定字符串在内存中的结尾位置。在 C 中,字符串以此空字符终止,以指示字符串内容的结尾。如果没有空字符,对字符串进行操作的 C 函数将不知道字符串在哪里结束,从而导致未定义的行为或意外结果。该数组 str 保存字符串“hello”的字符,并以空字符“\0”结尾,指示字符串的终止。空字符('\0')是 C 中的特殊字符,用于标记字符串的结尾。原创 2023-12-04 00:15:00 · 359 阅读 · 0 评论 -
C 语言-结构体
数据类型。它们有助于组织大型程序中的复杂数据,因为它们允许将一组逻辑相关的变量视为一个变量。例如,学生可以拥有姓名、年龄、性别和分数等属性。我们可以。原创 2023-12-04 00:15:00 · 89 阅读 · 0 评论 -
C 中的结构 - 存储、指针、函数和自引用结构
将填充量减少到可能的最小值的一种方法是按成员变量大小的递减顺序声明成员变量。数组的名称,即结构体数组的基地址,被传递给函数。换句话说,任何数据类型的地址都必须是 1 字节或其大小(以较小者为准)的倍数。可能需要在结构的成员之间插入一些额外的字节以对齐数据。当声明某种类型的结构变量时,结构成员被分配连续(相邻)的内存位置。因此,结构末尾有 7 个字节的填充,使其大小为 24 个字节。如果结构的大小很大,那么传递它的副本不会非常有效。在本节开头讨论的示例中,它不是必需的(因此是另一个示例)。原创 2023-11-30 17:22:57 · 595 阅读 · 0 评论 -
c 数组简介
array1 在声明时已被初始化,为了说明复制数组元素的概念,我们在循环内将 array1 值分配给 array2。在此 C 程序代码中,我们初始化了大小为 3 的数组 nums,并将列表中的元素初始化为 0,1 和 2。在此 C 编程代码中,我们在声明时初始化了一个数组,其大小为 3,数组名称为 arr。如果我们在声明时在列表中显式初始化数组元素,则可以跳过方括号内数组的写入大小。在静态未初始化数组中,所有元素最初都包含垃圾值,但我们可以在声明时显式初始化它们。成功编译程序后,数组元素在运行时初始化。原创 2023-11-29 00:54:58 · 179 阅读 · 0 评论 -
将文件读入C中的字符数组
实际上,如果您唯一的任务是将文件读入数组,那么这一步是不必要的。当您使用 C 编程语言时,您可能会遇到一些需要将文件读入字符数组的问题,例如分析每个字符的频率,或者将所有句子的每个起始词从小写转换为大写,反之亦然。“malloc”和“calloc”之间的主要区别在于,“malloc”仅分配内存而不初始化其内容,而“calloc”既分配内存又将内存初始化为零。创建缓冲区后,您可以使用“fread”函数读取整个文件,该函数获取文件指针、要读取的每个元素的大小、要读取的元素的数量以及目标数组。原创 2023-11-29 00:15:00 · 688 阅读 · 0 评论 -
C 中的指针 - 结构和指向指针的指针
我们讨论了指针表示法、定义、类型和算术。接下来是它在数组、字符串和函数中的使用。到目前为止,我们已经了解了指向各种原始数据类型、数组、字符串、函数、结构和联合的指针。与结构一样,我们可以拥有指向联合的指针,并且可以使用箭头运算符 (同样,我们也可以访问和修改其他成员。请注意,使用时括号是必需的,与整数指针、数组指针和函数指针一样,我们也有结构体指针或。,它是结构体第一个成员的基地址。,为了存储其地址,我们必须创建一个指向 的指针。我们还可以将结构变量的地址传递给函数。,则指针将停止指向该变量。原创 2023-11-28 04:00:00 · 310 阅读 · 0 评论 -
C 中的指针 - 数组和字符串
0. 为什么是指针和数组?在C语言中,指针和数组有着非常密切的关系。应该将它们放在一起讨论的原因是,使用数组表示法可以实现的功能也可以使用指针实现,通常速度更快。1. 一维数组让我们看看当我们写的时候会发生什么。从到 开始创建五个内存块,其中包含垃圾值。每个块的大小为 4 字节。myArray[4]因此,如果 myArray[0] 的地址是100(例如),则其余块的地址将为104108112和116。现在,看看下面的代码 -那么 、&primeprime和&prime[0]原创 2023-11-27 23:28:45 · 546 阅读 · 0 评论 -
C 中的指针 - 函数
我们还将关于与函数一起使用指针的想法扩展到函数指针以及它们在 C 中的使用方式。在这个数组中,每个元素将存储一个函数的地址,其中所有函数都是相同的类型。,如果第一个参数分别大于、等于或小于第二个参数,则该比较函数返回大于、等于或小于零的整数。我们将变量的地址或引用传递给不创建副本的函数。,它是 C 中的内置函数。就像指向不同数据类型的指针一样,我们也有一个指向函数的指针。由于数组本身的名称是指向第一个元素的指针,因此我们将其作为参数发送给函数。类似地,我们可以使用指向数组第一个元素的指针将数组作为参数。原创 2023-11-28 04:00:00 · 129 阅读 · 0 评论 -
C中指针的定义、表示法、类型和算术
这将导致意外的行为,因为我们将在可能空闲或保留的内存块中写入数据。1.只有当一个指针具有相同类型时,才可以将它们的值分配给另一个指针(除非类型转换或其中一个是。是 C 中的内置排序函数,有一个函数作为其参数,该函数本身接受 void 指针作为其参数。由于它指向的地址不再被保留,使用它会导致意想不到的结果。变量,它用于存储另一个变量的地址。位置编号的值对我们来说并不重要,因为它是一个随机值。- 我们需要告诉计算机我们要存储其地址的变量的数据类型是什么。添加(或减去)指针所指向的变量的数据类型大小的 n 倍。原创 2023-11-27 23:13:09 · 239 阅读 · 0 评论 -
C++中缺省值的用法和注意事项
缺省值是指在函数声明时为参数提供的默认值,如果调用函数时没有传递参数,那么编译器就会自动使用缺省值。如果传递了参数,那么缺省值就会被忽略。使用缺省值可以简化函数的调用,减少重载函数的数量,提高代码的可读性和灵活性。在使用缺省值时,需要遵守一些规则,否则可能会导致编译错误或者逻辑错误。缺省值只能从右向左依次提供,不能跳跃或者从左向右提供。缺省值只能在函数声明时提供,不能在函数定义时提供,除非函数是内联的。原创 2023-11-23 20:30:50 · 3022 阅读 · 0 评论 -
理解C++编译指令#pragma pack(1)
内存对齐是一种优化内存访问速度的技术,它会根据数据类型的大小来调整数据在内存中的位置,使得数据的起始地址是它的大小的整数倍。例如,如果一个int类型的数据占4个字节,那么它的起始地址应该是4的整数倍,比如0,4,8,12等。如果一个char类型的数据占1个字节,那么它的起始地址可以是任意的,比如0,1,2,3等。原创 2023-11-23 16:54:16 · 7938 阅读 · 0 评论