【C++中指针的分类】教程文章相关的互联网学习教程文章

C++ Day4 指针和结构体【代码】

C++ Day4 指针和结构体 一、指针1.1 定义和使用1.2 指针所占的内存空间1.3 空指针1.4 野指针1.5 const修饰的指针1.6 指针与数组1.7 指针与函数1.8 示例 二、结构体2.1 定义和使用2.2 结构体数组2.3 结构体指针2.4 结构体嵌套结构体2.5 结构体作为函数参数2.6 结构中const使用场景一、指针 通过指针可以间接访问内存。可以通过指针来保存一个地址。 1.1 定义和使用 定义:数据类型 * 变量名。让指针记录地址。 #include<iostream> u...

c++ this指针详解【代码】

总结 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。 友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。 C++ 程序到C程序的翻译 C++ 是在C语言的基础上发展而来的,第一个 C++ 的编译器实际上是将 C++ 程序翻译成C语言程序,然后再用C语言编译器进行编译。 C语言没有类的概念,只有结构,函数都是全局...

C++delete一个指针之后为什么要设置为nullptr【代码】【图】

C++delete一个指针之后为什么要设置为nullptr本文转载自:使用delete 删除指针,真的删除了吗 我们在用动态内存分配时,可以使用new在动态内存中为对象分配空间并返回一个指向该对象的指针,比如说int* ptr = new int(1);,在自由空间构造一个int型对象,并返回指向该对象的指针给int* ptr。(注意:ptr只是一个变量,就像是int a=1;中的a一样,不过a是整形变量,而ptr是指针变量)。 为了防止内存耗尽,在动态内存使用完毕后,我...

C++基础(十三)函数指针【代码】【图】

函数指针,指向函数的指针,顾名思义,其本质还是一个指针!可以对其进行赋值(包括nullptr),当然也能判断是否为空。 函数的类型,由它的返回类型和形参类型、形参个数共同决定,与函数名无关。所以函数指针,也只关心这些。 1、定义 定义一个函数指针,只需要指定返回值类型和形参(包括个数和类型)。在返回值和形参类型中间,加上函数指针的变量名,以及"*",并用一对小括号包起来即可。如下: 返回类型 (*函数指针名)(形参) 例如...

C++ STL 四种智能指针【代码】【图】

文章目录 0.前言1.unique_ptr2.auto_ptr3.shared_ptr 3.1 shared_ptr 简介3.2 通过辅助类模拟实现 shared_ptr 4.weak_ptr 4.1 weak_ptr 简介4.2 weak_ptr 用法4.3 weak_ptr 的作用 5.如何选择智能指针参考文献 0.前言 C++ 标准模板库 STL(Standard Template Library) 一共给我们提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr,其中 auto_ptr 是 C++98 提出的,C++11 已将其摒弃,并提出了 unique_ptr 替代 ...

C++(9)--指针【代码】

指针 1.指针的基本概念1.1指针的简介1.2指针的声明及初始化1.3取地址符号&1.4间接运算符* 2.空指针、void指针2.1空指针2.2void *ptr 3.指针和引用4.指针和数组4.1 使用指针的递增和递减访问数组4.2 指针与数组使用的一些注意点《老九学堂C++课程》《C++ primer》学习笔记。《老九学堂C++课程》详情请到B站搜索《老九零基础学编程C++入门》-------------简单的事情重复做,重复的事情用心做,用心的事情坚持做(老九君)-------------...

【C++】指针和引用的区别、野指针的触发与避免

目录参考资料 参考资料 -c++中,引用和指针的区别是什么?野指针的定义. 如何避免野指针. 利用腾讯的面试题来解释野指针,简单易懂.析构函数的理解 关于new的理解值为NULL的对象指针

C++ void类型指针的使用【代码】

# include <iostream>using namespace std;int main(){void * pv; // 声明void类型的指针 int i = 10;pv = &i; // void 类型指针指向整型变量 int *pint = static_cast<int *>(pv); // void 类型指针赋值给 int类型指针 cout << "*pint = " << *pint << endl;return 0; } 运行结果: *pint = 10注:void指针一般只在指针所指向的数据类型不确定时使用。

小甲鱼-C++ 10 指针和数组【代码】

①指针和数组 1、数组的名字其实也是一个指针(指向数组的基地址,就是第一个元素的地址) --- int *ptr1 = &myArray[0]; --- int *ptr2 = myArray; 2、访问其他元素: ptr1++; 注意以上不是简单的对地址值进行+1处理,它是按照指向的数组的数据类型来递增的,也就是+sizeof(int) #include <iostream>using namespace std;int main() {const unsigned short ITEMS = 5;int intArray[ITEMS] = {1, 2, 3, 4, 5};char charArray[ITEMS] ...

C++11特性-智能指针详解【代码】

动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极为困难的。有时我们会忘记释放内存产生内存泄漏,有时提前释放了内存,再使用指针去引用内存就会报错。 为了更容易(同时也更安全)地使用动态内存,新的标准库提供了两种智能指针类型来管理动态对象。智能指针的行为类似常规指针,区别在于它负责自动释放所指向的对象。这两种智能指针的区别在于管理底层指针的方式:shared_ptr 允许多个shared_ptr类型指针指向同一...

C++11智能指针【代码】【图】

Smart pointer 会不会比Raw pointer效率低?想把智能指针用成瓶颈的话,基本上是不可能的,不要过度担心Smart pointer 不用自己管理内存了,是不是对c++程序员要求低了显然是要求更高了,想要用好智能指针的前提是会熟练使用裸指针,而且要了解智能指针的实现原理,要根据实际情况去选择shared_ptr及unique_ptr。智能指针使用不当同样会内存泄漏 unique_ptr使用 unique 顾名思义 ownership 唯一 1.推荐使用make_unique进行初始化(...

【C/C++】指针用法详解【代码】【图】

定义与初始化定义:int *p=&a; 初始化:int *p ; p=&a;也就是说,定义时使用int p表示定义p为一个指针变量;而使用时,p代表地址,p代表其内容。 char a[ ]和char *achar a[ ] 内容可变,地址不可变 char *const p,是指针常量const char *a 内容不可变,地址可变 const char *p,是指针变量char *a 内容不可变,地址可变这里“地址”指a的值。 这里“内容不可变”指不可以编辑*a的具体某一个单元。 注意:char const *p=const cha...

【3】C++语法与数据结构之MFC_CList学生管理系统_链表外排序_函数指针【代码】

注意:此时排序规则函数定义为全局函数 C++中定义CStudent类 文件名:Student.h #pragma once #include <afxtempl.h> typedef struct SUser {int nNumb;char sName[20];float fMath; }DATA;typedef bool(*BY_FUNC)(DATA& q,DATA& m);class CStudent {CList<DATA> m_list;int Menu();int Input();void Delete();void Modify();void Print();void Sort(BY_FUNC pFunc);int SortMenu();void Load();void Save();void PrintPS(POSITION...

C++之指针探究(三):指针数组和数组指针【代码】【图】

前文:C++之指针探究(二):一级指针和一维数组 一. 指针数组或: 指针数组的本质是数组,数组中每一个成员是一个指针。定义形式如下: ??char?\ast? pArray[10]; 语法解析:pArray 先与“[ ]”结合,构成一个数组的定义,char?\ast?修饰的是数组的内容,即数组的每个元素。 例4: 运行结果:附例4代码 //小问学编程 #include <iostream> using namespace std;int main() {char* pArray[] ={"apple","pear","banana","orange","pin...

11.C++引用,引用和指针的区别,把引用作为参数,把引用作为返回值(被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,可以返回一个对静态变量的引用)【代码】【图】

C++引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。 引用和指针的区别 引用很容易与指针混淆,它们之间有三个主要的不同: 可以有空指针,但不能有空引用,引用必须连接到一块合法的内存。引用一旦被初始化为某对象,就不能被指向到另一个对象,而指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间...