![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点
文章平均质量分 68
Ljw...
这个作者很懒,什么都没留下…
展开
-
C++类和对象总结
公共部分(public):这部分包含类的成员函数和可以被外部访问的成员变量(尽管在良好的实践中,成员变量通常被声明为私有的)。public成员可以在任何地方被访问,protected成员只能在类的成员函数和派生类中被访问,而private成员只能在类的成员函数中被访问。在大括号内部,可以定义类的成员变量和成员函数。子类可以添加新的成员变量和成员函数,也可以重写父类的成员函数(通过函数覆盖)。在C++中,类的访问控制是一个重要的特性,它允许程序员定义类的成员(包括成员函数和成员变量)的可见性和可访问性。原创 2024-06-22 11:06:35 · 2210 阅读 · 29 评论 -
打印%d的多种形式
但是,请注意 10e-3 这样的表示在C语言中可能是有问题的,因为编译器可能会将其解释为 10.0 * e - 3,其中 e 被视为一个未定义的变量(除非你在其他地方定义了它)。在C语言中,%d 是用于打印十进制整数的格式说明符,而 %e 是用于打印浮点数(通常是 float 或 double 类型)的科学计数法形式的格式说明符。但如果你是在谈论类似 10e-3 或 1.0e+2 这样的表示,那么这是浮点数的一种科学计数法表示。在这个例子中,整数123是左对齐的,并在其右侧用空格填充到指定的宽度。原创 2024-06-21 10:35:37 · 978 阅读 · 5 评论 -
结构体知识点
1.结构的声明1.结构的声明。原创 2024-05-27 10:12:19 · 281 阅读 · 13 评论 -
动态内存管理
• 数组在申明的时候,必须指定数组的⻓度,数组空间⼀旦确定了⼤⼩不能调整 但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知 道,那数组的编译时开辟空间的⽅式就不能满⾜了。• 有时会我们发现过去申请的空间太⼩了,有时候我们⼜会觉得申请的空间过⼤了,那为了合理的使 ⽤内存,我们⼀定会对内存的⼤⼩做灵活的调整。• 如果参数 ptr 指向的空间不是动态开辟的,那free函数的⾏为是未定义的。• 这个函数调整原内存空间⼤⼩的基础上,还会将原来内存中的数据移动到 新 的空间。原创 2024-05-26 14:25:10 · 565 阅读 · 2 评论 -
memcpy的使⽤和模拟实现
这是memcpy在库里的定义,具体可在查看•num单位是字节,下面的模拟实现需要强制类型转换•函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。• 这个函数在遇到 '\0' 的时候并不会停下来。• 如果source和destination有任何的重叠,复制的结果都是未定义的。对于重叠的内存,交给memmove来处理。(下期会有)memcpy的使⽤的代码void和void*的用法已经发布。原创 2024-05-23 13:07:42 · 1248 阅读 · 7 评论 -
void和void*
然后,它将value存储在新分配的内存中,并返回一个指向该整数的指针,但指针的类型是void*。是的,在C语言中,函数名定义为返回void*类型确实可以返回值。void*是一个特殊的指针类型,被称为通用指针或空指针,它可以指向任何类型的数据。因此,当函数被定义为返回void*类型时,它可以返回一个指向任何类型数据的指针。void* 类型的指针本身是一个地址,不能直接打印为具体的值,因为它不指向一个具体的类型。如果你需要函数返回某种类型的数据,那么你应该在函数定义中指定返回类型,而不是void。原创 2024-05-23 13:03:01 · 474 阅读 · 1 评论 -
辗转相除法
递归性质:对于任意两个正整数a和b(a>b),它们的最大公约数等于b和a除以b的余数r的最大公约数。需要注意的是,虽然辗转相除法在处理大数时可能会比较慢(因为其时间复杂度为O(log(min(a,b)))),但它仍然是一个非常重要的算法,因为它不仅简单易懂,而且在实际应用中具有广泛的应用,如密码学、线性代数等领域。整除性质:如果两个整数a和b的最大公约数是d,那么对于任何整数k,a和b的线性组合ax+by(其中x和y是整数)也能被d整除。初始化两个整数a和b,其中a是较大的数,b是较小的数。原创 2024-05-21 12:33:54 · 329 阅读 · 4 评论 -
c语言格式化输出
注意,当使用%p来输出指针时,通常需要将指针转换为(void*)类型,以避免类型不匹配的警告或错误。在C语言中,格式化输出通常使用printf函数,它允许你指定一个格式化的字符串和一系列参数,然后按照指定的格式输出到标准输出(通常是终端或控制台)。格式说明符以%开头,后面跟着一个或多个字符,用于指定如何输出后续的参数。如果输出的数据宽度小于这个值,则使用空格进行填充(除非使用了其他填充字符)。根据浮点数的大小自动选择%f或%e格式,但不输出无意义的零。输出一个指针的值,通常显示为十六进制格式。原创 2024-05-20 23:04:09 · 335 阅读 · 2 评论 -
size_t和int总结
size_t 的大小和范围也取决于具体的编译器和平台,但通常与系统的指针大小相同(例如,在 64 位系统上,size_t 通常是 64 位)。size_t 的表示范围取决于平台和编译器,但通常是一个足够大的无符号整数类型,能够表示任何数组或对象的大小。size_t 是无符号的,因此它不能表示负数。int 的表示范围也是依赖于平台和编译器的,但在大多数现代系统上,它是一个32位有符号整数,能够表示从-2,147,483,648到2,147,483,647的值(这是对于使用补码表示法和二进制32位的系统)。原创 2024-05-20 22:58:16 · 427 阅读 · 0 评论 -
二维数组和一维数组
在上面的例子中,matrix 是整个二维数组的名称,它的类型是一个有3个元素的数组,每个元素是一个有4个int的数组。这个指针的类型是指向数组的指针,其中数组的元素是另一种类型的数组。虽然二维数组的地址在概念上指向其第一行,但在实际使用中,我们通常通过指向数组元素的指针来访问二维数组的元素,而不是直接通过指向数组的指针。当我们说“一维数组的地址”时,我们通常指的是数组第一个元素的地址。一维数组的地址是一个指向其元素类型的指针,而二维数组的地址是一个指向数组的指针,其中数组的元素是另一种类型的数组。原创 2024-05-18 20:16:29 · 212 阅读 · 4 评论 -
char arr和int arr的区别
int arr`:这是一个整数数组,`arr` 中的每个元素都是 `int` 类型,用于存储整数数据。`char arr`:因为 `char` 类型通常是1个字节,所以整个数组 `arr` 的内存占用将取决于它包含的元素数量。`int arr`:由于 `int` 类型通常是4个字节,`arr` 的内存占用将是元素数量的4倍。对于 `char arr`,你通常会使用C语言的字符串函数,如 `strlen`, `strcpy`, `strcat` 等来处理字符数组。`,编译器会自动添加终止的空字符。原创 2024-05-18 19:54:14 · 462 阅读 · 1 评论