自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基础知识

摘要:本文介绍了C++编程的重要知识点,包括:1)63个关键字的使用注意事项;2)命名空间的定义和使用方法,包括嵌套和多文件合并;3)输入输出流(cin/cout)的用法;4)缺省参数的全缺省和半缺省实现规则;5)函数重载的实现方式;6)引用及其与指针的区别;7)内联函数的作用和使用限制;8)auto关键字和范围for循环;9)nullptr作为指针空值的优势。这些内容涵盖了C++基础语法的重要特性,对理解C++编程思想具有关键作用。

2025-06-08 16:12:30 1597

原创 this指针

c++通过引用this指针来解决,就是c++编译器给每个非静态成员函数增加一个隐藏的函数指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),函数体中所有成员变量的操作,都是通过该指针去访问。看到上述代码有这样一个问题,Date中的Init和Print两个成员函数,函数体没有关于区分不同对象,那d1调用Init函数时,该函数是如何设置d1对象,而不是设置d2对象呢?this指针本质是成员函数的形参,当对象调用成员函数时,将对象地址作为实参传递给this形参。下面我们先看一段代码。

2023-09-20 15:23:43 78 1

原创 类与对象(上)

/类体:由成员函数和成员变量构成//注意分号class为关键字,classname为定义类的名字,{}为主体类体中的内容称为类的成员:类中的变量称为类的属性或成员变量,类中的函数称为类的方法或成员函数声明和定义同时放在类体中,如果成员函数放在类体中,编译器会把它被当做内联函数来处理public:public:int _name;int _sex;int _age;//People.h,声明放在类的.h文件中public:public:int _name;int _sex;

2023-09-15 12:03:02 82 1

原创 引用的基本运用

引用不是新定义一个变量,而是给已定义的变量换一个名称,编译器不会单独给引用开辟一块空间,因为它和引用的变量是同一块内存空间。需要注意的是:函数返回时,出了函数作用域,返回对象还在(还没给系统),则可使用引用返回,返回系统了,必须使用传值返回。引用在底层实现上是有空间的,因为引用是按照指针方式实现的。传引用返回(出了函数作用域,对象还有)但做返回值时常会伴随一些问题。那这里结果为什么是7呢?传值传参(任何时候都可以)引用在定义时必须初始化。4.3传值、传引用返回。”,还是指的同一个人。需要注意的是权限可以。

2023-09-13 13:19:28 83

原创 c++命名空间

因为c和c++当中,存在大量的函数、变量、类的名称存在与全局作用域当中,难免会引起冲突,使用命名空对标识符的名称本地化,ade为命名名字,{}里面就是我们命名空间中定义的。1.加命名空间名称和作用域限定符。就是针对这些问题出现的关键字。那像以前这样使用是否正确呢?下面我来介绍正确的使用方法。为什么要命名空间呢?避免发生冲突或名字污染。另外命名空间还可以嵌套。命名空间该如何使用呢?显然这样使用是不正确的。定义命名空间需使用到。

2023-09-07 21:18:23 63

原创 指针的深入

答案是也表示首元素地址,二维数组的起始是一维数组的数组,二维数组的首元素是二维数组第一行,首元素的地址是第一行的地址,也是一个一维数组的地址。这里p2先于*结合构成一个指针变量,指向的是一个大小为10的整型数组,所以p2是一个指针,指向一个数组,叫数组指针。数组的地址+1,跳过整个数组的大小,所以&arr+1相对于&arr的差值是40。注意的是这里[ ]的优先级高于*号的,所以要加上()保证p先于*结合。实际上&arr取出的是整个数组的地址,而不是数组首元素的地址。

2023-05-29 21:43:26 85 1

原创 双链表增删查改

两个一比较,就很容易发现双向结构更复杂,在实际当中往往双向运用的更多,所以不要看它复杂,用起来反而更轻松,不说多话,咱们接着往下看。那这个是怎么实现的,想肯定是想不出来的,那咱们就用图来表示,这里phead表示哨兵位,看作没有,看成进行中转的作用。声明之后我们还要具体运用,也就是定义,咱们要一步一步走,不然吃成大胖子,还怎么往后走,先看。链表又分为单向和双向,带头和不带头,循环和不循环,那下面我们要着重带头双向循环链表。test3:查找某数和在pos位置插入。的储存结构,逻辑上是连续的,通过。

2023-05-15 18:31:26 67 1

原创 指针的基本运用

char*类型的指针存放的就是char类型变量的地址,所以不难发现int*就是存放int类型变量的地址,其余就等同。指针就是在内存当中占一个字节地址,就相当于在内存中单位为一个字节的编元,对应的有相应的地址,简而言之就是。这里通过&将a的地址存放到p变量中,显然这里p是指针变量,那它究竟是哪种类型了,咱们往下走。通过取地址操作符&,将内存当中的地址取出来,存放在变量当中,这个变量就是指针变量。4/8个字节,指针就是地址,地址的存放需要多大空间,指针变量的大小就是多少。二级指针就是存放一级指针变量的地址。

2023-05-06 17:47:08 130

原创 预定义与宏

在#define机制中包含一条规定,允许吧参数替换到文本中,这种实现称为宏或定义宏宏的申明方式这里要注意左括号必须与name紧挨在一起如果两者之有空白存在,参数列表会解释成为stuff的一部分eg:我们传一个参数swap(5)这里就变成了5*5那如果是这种状态了int a=5;按我们预想结果来看这里应该打印36,实际看下图那这是为什么呢?这是因为变成了printf(“%d”,a+1*a+1)那应该如何解决这个问题了,只需要在定义宏哪里x加上括号就行了(x)*(x)

2023-04-05 22:38:26 135 1

原创 文件的基本知识

文件的说明和使用、文件的打开和关闭、文本文件和二进制文件、文件读取结束的判定介绍了文件的相关知识信息,对文件有了一定的了解。如果在阅读过程中,发现错误,请及时联系我予以纠正。

2023-04-04 23:28:13 945 1

原创 结构体的声明、自引用、定义和初始化、内存对齐、传参

第二点,int a 4 8 4 char b 1 8 1 int c 4 8 4 比较,取较小值。特别说明嵌套的话就看最大对齐数,然后依次往下数,就比如我上面举例的这个从4的整数倍往下数12个。如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,会导致性能下降。第一点,这里int是四个字节,所以从0开始,一直到3,这是a所占的,b c一样。第三点,然后要从整数倍开始,4是1的倍数,所以b就从这里。12为最大对齐数的整数倍,所以符合(最大对齐数为4)别急,咱们一步步看下去。

2023-03-19 14:51:16 136

空空如也

空空如也

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

TA关注的人

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