
C编程:返璞归真
文章平均质量分 74
本专栏的目的,旨在缺少易用的编程环境时,仍然能够通过计算机提供的最基本的条件进行编程,返璞归真
鸥梨菌Honevid
此人很帅,什么都没有写
展开
-
mpz_t类型数据使用完一定要clear吗?如果不clear会怎样?
清理mpz_t变量是必要的,尤其是在大型程序或长时间运行的程序中。虽然在某些简单程序中不清理可能不会立即导致问题,但为了避免潜在的内存泄漏和资源管理问题,建议始终在使用完mpz_t变量后调用mpz_clear。原创 2025-02-25 11:46:24 · 296 阅读 · 0 评论 -
GMP库中,mpz_t类型的数据如何比较大小?
在GMP库中,mpz_t类型的数据用于表示任意精度的整数。比较两个mpz_t类型数据的大小可以通过GMP提供的比较函数来完成。这些函数会返回一个整数值,表示两个数之间的大小关系。原创 2025-02-25 11:17:45 · 274 阅读 · 0 评论 -
在VS2022中使用GMP库
GMP库是处理大数运算的强大工具,适用于密码学、科学计算等领域。使用时需要注意内存管理和线程安全,合理选择数据类型和函数以优化性能。原创 2025-02-24 15:32:02 · 841 阅读 · 0 评论 -
C语言基础知识巩固——1.基本知识
宏定义编译是简单机械的替换,需要注意会不会引起意想不到的结果。原创 2024-04-18 19:53:50 · 742 阅读 · 0 评论 -
C/C++细节
在C++中,当复制对象时,如果对象包含指向动态分配内存的指针,那么需要执行深拷贝(即复制指针指向的内容)而不是浅拷贝(仅复制指针本身)。:在C/C++中,函数参数是按值传递的,这意味着如果你传递一个数组或结构体到函数中,实际上传递的是它们的副本,而不是原始数据。:在C/C++中,局部变量不会自动初始化,它们的初始值是未定义的。:在C/C++中,数组越界访问并不会被编译器检测到,而是可能导致运行时错误或不可预见的行为。:C/C++允许隐式类型转换,这可能会导致意料之外的结果,特别是在涉及不同数值类型时。原创 2024-04-14 10:09:41 · 797 阅读 · 0 评论 -
C/C++字符串操作
C/C++对字符串的操作提供了丰富的函数库,这些函数可以用于创建、修改、比较和搜索字符串等。原创 2024-04-14 10:08:59 · 997 阅读 · 0 评论 -
cmath库常用函数
在这个示例中,我们首先包含了iostream和cmath头文件,然后在main函数中定义了两个变量a、b和c。接着,我们使用abs()函数计算了a的绝对值,并使用pow()函数计算了b的c次方。最后,我们将结果输出到控制台。此外,cmath库还包含了许多其他函数,如双曲函数、指数和对数函数、幂函数、误差和伽玛函数、舍入和余数函数、浮点操作函数、最小值、最大值、差值函数等。cmath库是一个包含了各种数学函数和常量的C++标准库,常被用于进行复杂的数学计算。原创 2024-04-13 22:30:35 · 1144 阅读 · 0 评论 -
public、protected、private用法总结
public:任何类都可以访问。protected:只有定义它的类及其子类可以访问。private:只有定义它的类可以访问。正确使用这些访问修饰符是封装和隐藏实现细节的关键,有助于创建模块化和可维护的代码。原创 2024-04-13 22:30:17 · 485 阅读 · 0 评论 -
C++派生类的初始化顺序
重要的是要注意,即使你在派生类的初始化列表中显式地指定了基类和成员变量的初始化顺序,实际的初始化顺序还是按照它们在派生类定义中的声明顺序来决定的。:首先,按照基类在派生类中的声明顺序,从基类到基类依次调用它们的构造函数。:在基类的构造函数调用之后,派生类的成员变量按照它们在派生类定义中的声明顺序进行初始化。这包括所有的数据成员,无论它们是基本类型还是其他类的对象。:在所有基类和成员变量的构造函数调用完成之后,执行派生类构造函数的函数体。的构造函数,然后按照成员变量在派生类中的声明顺序调用。原创 2024-04-11 13:08:21 · 935 阅读 · 0 评论 -
break与continue的区别
break和continue都是控制流语句,用于改变循环或条件语句的执行流程,但它们在使用和效果上有一些重要的异同。原创 2024-04-11 13:06:47 · 503 阅读 · 0 评论 -
C++不同进制数据的表示方法
除了前缀表示法外,C++中还可以使用转义序列来表示八进制和十六进制数。原创 2024-04-10 10:42:43 · 1067 阅读 · 0 评论 -
C++要点细细梳理——trivial:运算符优先级、switch、临时变量默认赋值等
上述代码的输出是0而不是2,是因为在C++中,条件运算符(?:)的优先级高于赋值运算符(=)。根据C++的运算符优先级规则,条件运算符的优先级高于赋值运算符。因此,在执行i %= 2?1 : 2时,先进行条件运算符的判断,然后根据判断结果进行赋值操作。具体来说,首先计算i %= 2,即i = i % 2,将i的值更新为10 % 2的结果,即0。然后,根据条件运算符的判断结果,如果条件为真(非零),则取第二个操作数的值,即2;如果条件为假(零),则取第三个操作数的值,即1。由于i。原创 2024-04-08 17:57:29 · 1994 阅读 · 0 评论 -
C++要点细细梳理(下)(内存分配、异常处理、template和文件读写)
自定义异常类通常继承自std:exception,并重写一些方法,比如what()通常在自己编写的程序中会根据业务需求自定义异常类普通类可以模块化:在.h中声明,在.cpp 中定义(实现)但模板类不可以这样操作,必须声明同时+定义,为什么?因为编译器无法事先知道类型占位符T是什么,所以必须同时写。原创 2024-04-06 16:39:29 · 715 阅读 · 0 评论 -
C++要点细细梳理(上)(函数与面向对象)
之前我们讨论了C语言一些基础的细节,下面我们开始讨论C++,,后面我打算接着谈C++++,也就是C#,先在此留个坑。原创 2024-04-05 00:03:09 · 983 阅读 · 0 评论 -
C语言要点细细梳理——番外:运算符优先级
C语言中的运算符优先级决定了在没有括号的情况下,表达式中的各个部分应如何求值。这个优先级是固定的,并且遵循一定的规则。当运算符的优先级相同时,运算的方向(从左到右或从右到左)则称为运算符的结合性。对于同级运算符(即具有相同优先级的运算符),C语言采用从左到右的结合性。这意味着在没有括号的情况下,同级运算符将从左至右进行运算。注意,虽然这个列表提供了一个大致的优先级顺序,但在编写复杂的表达式时,为了代码的可读性和避免潜在的错误,最好使用括号来明确指定运算的顺序。会从右向左进行赋值,即。原创 2024-04-05 00:02:26 · 409 阅读 · 0 评论 -
C语言要点细细梳理(下)
任何外部数据源都是文件(于操作系统而言)和运行的程序(内存数据)不同,文件中的数据是持久化的,断电也存在但本质仍是数据(二进制字节块/字节流)原创 2024-04-04 10:08:26 · 811 阅读 · 0 评论 -
C语言要点细细梳理(上)
在编程领域,“宏”就是指通过预设,对指定的文本内容进行替换c语言中,通过#define预编译指令定义一个宏如下宏定义代码,在预编译阶段(即编译前),把源码中所有的PI改成对应的数字#define PI宏定义不止可以定义常量,也可以带参数定义:需要注意宏定义是简单机械的替换,注意下面这个例子,为了避免这样的问题,可以在宏定义时对计算的值加上括号宏定义是预编译指令,本质是文本的替换,支持复杂的带参数的文本模式替换不变量是语句,本质是对变量的修饰,限定其不能通过赋值号赋值。原创 2024-04-03 20:39:56 · 843 阅读 · 0 评论 -
使用powershell进行C编程
使用powershell进行c编程是指,不依赖现有的编程环境(如VS、Clion等),直接使用命令行、记事本、编译器进行c编程。本篇博文的目的,旨在缺少易用的编程环境时,仍然能够通过计算机提供的最基本的条件进行编程,返璞归真。原创 2023-12-29 14:57:24 · 1713 阅读 · 4 评论