自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 【C++】类和对象(中)

像Stack这样的类,虽然也都是内置类型,但_a指向了资源,编译器自动生成的拷贝构造完成的值拷贝/浅拷贝不符合我们的需求,所以需要我们自己实现深拷贝(对指向的资源也进行拷贝)。传值引用返回,返回的是返回对象的别名,没有产生拷贝,但如果返回对象当前函数局部域的局部对象,函数结束时就销毁了,那么使用引用返回是有危险的,这就相当于引用一个野引用,类似一个野指针一样。赋值运算符重载是一个默认成员函数,用于完成两个已经存在的对象的直接拷贝赋值,注意和拷贝构造区分,拷贝构造用于一个对象拷贝初始化给另一个要创建的对象。

2024-09-28 17:48:46 752

原创 【C++】类和对象(上)

1. class为定义类的关键字,Stack为类的名字,{}为类的主体,注意类定义结束时后面的分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。2. 为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量前加_或者m开头,C++中这个并不是强制的,只是一些惯例。3. C++中struct也可以定义类,C++中兼容C中struct的用法。

2024-09-22 14:07:13 773

原创 C++基础

1. 定义命名空间,需要使用到关键字namespace,后跟命名空间的名字,然后接一对{}即可。{}中即为命名空间的成员,可以是变量,函数或者类型等。int data;2. namespace的本质是定义出一个域,这个域跟全局域各自独立,不同域可以定义同名变量,所以下面的rand不冲突了。3. C++中域有函数局部域,全局域,命名空间域,类域。域影响的是编译时语法查找一个变量/函数/类型出处(定义和声明)的逻辑。有了域隔离,名字冲突也能解决。

2024-09-22 13:16:26 790

原创 【C语言】自定义类型:结构体

结构体位段可以帮助我们更加灵活的使用内存,可以将一个字节中的每个位看做是一个独立的布尔变量,并且可以指定位域所占的位数。这样做可以节省内存空间,提高内存利用率。1. 位段的成员必须是整形家族的,在C99中位段的成员也可以选择其他类型。2. 位段的成员名后边有一个冒号和数字。下面声明了一个名叫A的结构体,其中包含三个位域成员变量a、b、c。其中a占用2个bit位,b占用5个bit位,c占用10个位bit,d占用了30个bit位。

2024-05-14 11:21:35 647 2

原创 数据在内存中的存储练习

n是int类型,&n取出n的地址,(char*)(&n)将int*类型强制类型转换为char*类型,访问第一个字节的地址,*(char*)(&n)将该地址解引用得到第一个字节的内容。1. 大端(存储)模式:是指数据的低位字节的内容存储在内存中的高地址处,而数据的高位字节内容存储在低地址处。2. 小端(存储)模式:是指数据的低地址出的内容存储在内存中的低地址处,而数据的高位字节内容存储在高地址处。设计一个小程序来判断当前机器的字节序。

2024-04-23 14:53:35 262

原创 数据在内存中的存储

这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8个bit位,但除了8 bit 的char之外,还有16 bit 的short 型,32 bit 的long型(要看具体的编译器),另外,对于大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然那么必然存在着一个如何将多个字节安排的问题,因此就导致了大端存储模式和小端存储模式。对于32位的浮点数,最高一位存储符号位S,接着的8位存储指数位M,剩下的23位存储有效数字E。

2024-04-23 14:50:06 706

原创 C语言内存函数

1. memcpy函数将source指向的位置开始向后num个字节的数据直接复制到指向的内存块。2. 该函数不检查source中是否有任何终止 null 字符 - 它始终精确地复制num字节。3. 如果source和destination有任何的重叠,复制的结果都是未定义的。4. 为避免溢出,目标参数和源参数所指向的数组的大小应至少为数字字节。

2024-04-14 20:45:00 810 1

原创 C语言字符函数和字符串函数

在C语言中,有一系列函数是专门用来做字符分类的,也就是一个字符是属于什么类型的。这些函数的使用都要包含一个头文件是 ctype.h函数如果他的参数符合下列条件就返回真iscntrl控制任何函数isspace空白字符: 空格 ‘ ’ , 换页 ‘\f’ ,换行 ‘\n’ ,回车 ‘\r’ ,制表符 ‘\t' 或者垂直制表符’\v'isdigt十进制数字:0~9isxdigit十六进制数字:包括所有十进制数字,小写字母a~f,大写字母A~Fislower小写字母:a~z。

2024-04-14 20:41:30 730

原创 C语言指针初阶

知不足而奋进,望远山而前行!2.1 取地址操作符 (&)2.2 如何拆解指针类型2.3 解引用操作符 (*)2.4 指针变量的大小3.1 指针的解引用3.2 指针+-整数3.3 void* 指针4.1 指针+-整数4.2 指针 - 指针4.3 指针的关系运算5.1 野指针成因5.2 如何规避野指针。

2024-03-25 00:13:53 920

原创 实现字符串左旋的三种方法(C语言)

假设s1字符串为abcde,使用strcat函数在字符串后再追加该字符串,s1字符串就变为了abcdeabcde,s1的所有子字符串就包含了abcde所有左旋之后可能的结果,再使用strstr函数看能不能再abcdeabcde中找到s2,若能找到则返回1,否则返回0.第一个步骤是确定左旋的次数。分析思路:按照前面介绍的第一种方法,将字符串左旋一个字符就判断是否与另一个字符串相等若相等,则返回1,若不相等,就继续左旋,直到结束都不相等,返回0。写一个函数,判断一个一个字符串旋转之后的字符串是否为另外字符串。

2024-03-15 23:13:02 439 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除