zl程序教程

c/c++指针

  • c++常量指针和指针常量_指针指向二维数组

    c++常量指针和指针常量_指针指向二维数组

    大家好,又见面了,我是你们的朋友全栈君。**一:常量** 常量指针,指针常量,常量指针常量a)常量定义:不可修改的值,例如250,’A’ b)const关键字功能:将变量常量化,四种形式(1)const可以修饰普通变量,一旦修饰该变量,该变量就当做常量看待,不可再更改 Const int a=250;//将变量a常量化 A=200;//gcc编译器报错复制(2)常量指针:不能通过指针变量来修

    日期 2023-06-12 10:48:40     
  • EasyC++28,const和指针

    EasyC++28,const和指针

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第28篇,简单聊聊const和指针。指针和const我们知道const关键字修饰的是不可变量,将它和指针一起使用,会有很多微妙的地方。关于使用const来修饰指针,有两种不同的方式。第一种是让指针指向一个常量对象,这样可以防止使用该指针进行修改指向的值。第二种则是将指针本身声明为常量,可以防止改变指针指向的位置。下面我们来看下细节。指向常量的

    日期 2023-06-12 10:48:40     
  • EasyC++34,指针与引用的异同

    EasyC++34,指针与引用的异同

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第34篇,来聊聊引用与指针。引用与指针的区别指针和引用的原理非常的相似,所以很多时候尤其是面试的时候经常会拿来比较。本文来梳理一下引用和指针的一些异同。相同点两者都是关于地址的概念。指针本身是一个变量,它存储的值是一块内存地址,而引用是某一个内存的别名。我们可以使用指针或引用修改对应内存的值。区别引用必须在声明时初始化,而指针可以不用我们无法

    日期 2023-06-12 10:48:40     
  • EasyC++61,this指针

    EasyC++61,this指针

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第61篇,this指针。this指针还是Stock股票这个类,假设我们要实现一个方法,比较一下当前股票和传入的股票, 返回价格高的那个股票。在我们实现的时候,会遇到一点问题。const Stock & Stock::topVal(const Stock &s) const { if (s.total_val >

    日期 2023-06-12 10:48:40     
  • 【C++】自引用this指针的秘密

    【C++】自引用this指针的秘密

    大家好,又见面了,我是你们的朋友全栈君。 关于this指针的一个经典回答当我们在进入一个房子之后,可以看见房子里的桌子、椅子、地板等,但是看不到房子的全貌。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向这个个实例。识别一个类可以分为哪三步?①识别类名。 ②识别数据成员。 ③识别成员函数并修改之。this指针的特性:①this指针的

    日期 2023-06-12 10:48:40     
  • C++中this指针的理解和用法

    C++中this指针的理解和用法

    大家好,又见面了,我是你们的朋友全栈君。关于this指针的一个精典回答:当你进入一个房子后, 你可以看见桌子、椅子、地板等, 但是房子你是看不到全貌了。 对于一个类的实例来说, 你可以看到它的成员函数、成员变量, 但是实例本身呢? this是一个指针,它时时刻刻指向你这个实例本身。 个人理解:(ps:class类就好比这座房子,this就好比一把钥匙,通过钥匙来打开了这座房子的门,那么

    日期 2023-06-12 10:48:40     
  • 浅析C++中的this指针[通俗易懂]

    浅析C++中的this指针[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。 有下面的一个简单的类: class CNullPointCall { public : static void Test1(); void Test2(); void Test3( int iTest); void Test4(); private : static

    日期 2023-06-12 10:48:40     
  • 【C++】智能指针详解

    【C++】智能指针详解

    大家好,又见面了,我是你们的朋友全栈君。 参考资料:《C++ Primer中文版 第五版》 我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块

    日期 2023-06-12 10:48:40     
  • C++ 指针的两种操作,通过指针赋值 & 对指针赋值「建议收藏」

    C++ 指针的两种操作,通过指针赋值 & 对指针赋值「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 // 打印函数 template <typename T> void disp(T i) { cout<<i<<endl; } int main() { int i = 1; int *p = &i; *p = 2; // 通过指针赋值 disp(i);

    日期 2023-06-12 10:48:40     
  • c++ 指针赋值「建议收藏」

    c++ 指针赋值「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。一、一级指针char *a=”a”;char *b=”b”;a=b;//这个是b把存的内容b给a,此时a的内容是b,所以指针与指针赋值实际也是传值,和普通变量一样。若a的内容变为c,则b的内容还是b二、二级指针char **c=&a;char **d=&b;c=d;//这样是把b的地址给了c,此时d和c都指向b,若c的内容发生改变,那么b和d

    日期 2023-06-12 10:48:40     
  • 【C++】简单实现C++11的三种智能指针

    【C++】简单实现C++11的三种智能指针

    绪本篇是尝试对C++11的三种智能指针(unique_ptr, shared_ptr, weak_ptr)进行的复现结果, 智能指针的复现在面试中经常考到, 需要好好熟悉.才疏学浅, 错漏在所难免, 尤其是智能指针想要全面实现的话属实困难, 各种bug也难以排查, 后续若有新的修改会总结为一篇更好的文章, 望多多包容. 全文4.8k字, 参考文献和相关资料在每一段的开头给出, 慢慢来吧.cppre

    日期 2023-06-12 10:48:40     
  • C++ 快速理解数组名为何是常指针

    C++ 快速理解数组名为何是常指针

    动态分配实例此处使用的开发环境:visual studio 2019 下面我们通过C++中通过new来进行动态内存分配的实例带大家快速理解数组名为何是常指针int *p=new int[n]; delete[]p;复制上面,在堆中开辟n个整型内存空间,返回一个指向分配内存首地址的指针 通过数组元素的引用赋值(下标法);正常输出 下面是通过移动指针指向的整型空间对动态分配空间(可以将此处分配的

    日期 2023-06-12 10:48:40     
  • C/C++ 操作数组与指针笔记

    C/C++ 操作数组与指针笔记

    指针数组:#include <stdio.h> #include <stdlib.h> #include <string.h> void PrintInt() { int x = 10,y = 20,z = 30; int *Array[] = { &x, &y, &z }; // 定义数组指针 *Array[0] = 10

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】引用  ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录I . 引用概念II . 引用声明III . 引用 地址 内存 分析IV . 常引用V . 引用作为参数VI . 引用 与 指针 对比I . 引用概念C++ 对 C 扩充 : 引用 ( Reference ) 概念 , 是 C++ 在 C 的基础上进行的扩充 , 在 C 语言中是没有引用的 ;引用本质 : 引用的本质就是为一个变量指定一个别名 , 这个别名与变量的使用方式是相同的 ;II

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )

    【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )

    文章目录I . 智能指针 引入II . 智能指针 简介III . 智能指针 简单示例I . 智能指针 引入1 . 示例前提 : 定义一个 Student 类 , 之后将该类对象作为智能指针指向的对象 ;class Student { public: //构造函数 Student() { cout << "Student 对象创建" << en

    日期 2023-06-12 10:48:40     
  • 【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )

    【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )

    文章目录I . 博客总结 . 指针与引用类型参数II . 指针作为参数和返回值III . 引用参数简介IV . 引用作为参数和返回值I . 博客总结 . 指针与引用类型参数1 . 讨论问题 : 本章只针对一点进行讨论 , 那就是对两种类型的参数修改 , 是否影响到外部的变量 ; 传入什么样的参数才能修改外部变量 , 即 参数当返回值使用 ;2 . 如果要在函数中修改 N 维指针指向 :① 使用指针

    日期 2023-06-12 10:48:40     
  • C++智能指针

    C++智能指针

    目录1.为什么需要智能指针2.内存泄漏问题3.智能指针的使用以及原理1.为什么需要智能指针?下面结合抛异常的情况来看一个程序,看看这个程序中有没有内存方面的问题:#include<iostream> #include<memory> using namespace std; int div() { int a, b; cin >> a >> b

    日期 2023-06-12 10:48:40     
  • 开心档之C++ 指针

    开心档之C++ 指针

    C++ 指针学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:实例#inc

    日期 2023-06-12 10:48:40     
  • C++11 weak_ptr智能指针(一看即懂)

    C++11 weak_ptr智能指针(一看即懂)

    在 C++98/03 的基础上,C++11 标准新引入了 shared_ptr、unique_ptr 以及 weak_ptr 这 3 个智能指针。学习 weak_ptr 智能指针之前,您必须对对 shared_ptr 智能指针有一定的了解,可阅读《C++11 shared_ptr智能指针》一节做系统地学习。  关于 unique_ptr 指针,读者可阅读《C++11 unique_pt

    日期 2023-06-12 10:48:40     
  • C++基类和派生类指针的相互赋值和转换

    C++基类和派生类指针的相互赋值和转换

    在公有派生的情况下,派生类的指针可以直接赋值给基类指针。但即便基类指针指向的是一个派生类的对象,也不能通过基类指针访问基类没有而派生类中有的成员。 基类的指针不能赋值给派生类的指针。但是通过强制类型转换,也可以将基类指针强制转换成派生类指针后再赋值给派生类指针。只是在这种情况下,程序员需要保证被转换的基类指针本来就指向一个派生类的对象,这样才是安全的,否则很容易出错。 下面的代码演示了基类和派

    日期 2023-06-12 10:48:40     
  • C++11 shared_ptr(智能指针)详解

    C++11 shared_ptr(智能指针)详解

    要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++ 11 模板库的 memory 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。 只要将 new 运算符返回的指针 p 交给一个 shared_ptr 对象 托管 ,就不必担心在哪里写delete p语句 实际上根本不需要编写这条语句,托管 p 的 shared_ptr

    日期 2023-06-12 10:48:40     
  • C++指针作为函数参数(详解版)

    C++指针作为函数参数(详解版)

    《函数引用传递》一节,我们介绍了用作函数形参的引用变量,引用变量其实就是原始变量的别名,该原始变量用作实参。这样的设计使得函数可以访问原始实参变量,从而允许它更改变量的内容。当为一个变量传入一个引用形参时,则认为该实参是按引用传递的。 按引用传递实参还有一种替代方法,那就是使用指针作为函数参数。无可否认,引用变量比指针更容易处理,因为引用变量隐藏了所有的解引用和间接引用 机制 。但是,程序员仍然

    日期 2023-06-12 10:48:40     
  • C/C++中利用空指针简化代码,提高效率

    C/C++中利用空指针简化代码,提高效率

    这里的写法,可以避免使用for循环,减少栈空间内存的使用和减少运行时的计算开销!#include iostream>   #include string>   using namespace std;   void print_char(char* array[]);//函数原形声明   void main(void)     {         char* test[]={"abc

    日期 2023-06-12 10:48:40     
  • C++在堆上开辟与释放二维、三维指针详细解析

    C++在堆上开辟与释放二维、三维指针详细解析

    学习C++新手通常会对指针的使用比较头疼,其实指针的概念很简单,只要能悟清楚这样一个简单的道理就能对指针有一定的认识了:例如int*a=newint[10];一维指针其实就相当于一维数组,不用去看书上所说的数组在内存中的首地址这些晦涩的话,以此类推二维指针就相当于二维数组,新手对一维数组的开辟与释放比较容易熟悉,例如上面的a释放就是delete[]a;a=NULL;注意a=NULL;必须要加上,

    日期 2023-06-12 10:48:40     
  • C++中的对象指针总结

    C++中的对象指针总结

    指向对象的指针在建立对象的时候,变异系统会给每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。 一个简单的示例1.1:复制代码代码如下:#include<iostream>usingnamespacestd;classStudent{ public:  intnum;  intscore;  Student(int

    日期 2023-06-12 10:48:40     
  • c++回调之利用函数指针示例

    c++回调之利用函数指针示例

    c++回调之利用函数指针示例 复制代码代码如下:#include<iostream>usingnamespacestd; /************************************************************************//*               下层实现:CALLBACK                            

    日期 2023-06-12 10:48:40     
  • c++将引用或者是指针作为函数参数实现实参的运算

    c++将引用或者是指针作为函数参数实现实参的运算

    C++增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能,较指针参数来得更加安全直观。将引用作为参数传递的时候,实参初始化形参的时候不分配内存空间,也不调用拷贝构造函数,因此更加能够提高运算的性能。所以我们应该尽可能地使用引用,而非指针,但是应该要注意,因为局部变量具有自己短暂的生命周期,因此不能够返回对一个局部变量的引用。 引用通常是在被定义的时候被初始化,但是当它作为参数的时候,

    日期 2023-06-12 10:48:40     
  • c++传递函数指针和bind的示例

    c++传递函数指针和bind的示例

    复制代码代码如下:#include<algorithm>classTestClass{public: intSub(intx,inty){  returny-x; } voidInitAndTest(){  PrintWithClassMemberFunction(&TestClass::Sub);  PrintWithClassPointer(this); }  //cal

    日期 2023-06-12 10:48:40     
  • C++基础入门教程(八):函数指针

    C++基础入门教程(八):函数指针

    最近事情比较多,其实并不忙,就是事情比较影响思绪,所以都没心思写文章了。 今天主要说说函数的一些基本情况吧,同时也解释一下新手最容易迷糊的——什么时候要用指针参数? 一、函数原型和函数定义 大家都知道,C++定义函数之前,还需要声明函数原型,对于习惯Java等其他高级语言的朋友来说,真心觉得这很烦人。 如下代码: 复制代码代码如下: //声明函数原型 voidstartGame(intparam

    日期 2023-06-12 10:48:40     
  • C++指向函数的指针用法详解

    C++指向函数的指针用法详解

    本文以实例形式展示了C++指向函数的指针用法,是深入学习C++所必须掌握的关键知识点。分享给大家供大家参考之用。具体方法如下: 函数指针 现来看看以下声明语句,看看其含义: float(*h(int,void(*)(int)))(int); 以下是一个变量指针的定义语句: float*pf; 以下是一个普通函数的声明语句: floatf(); 请看以下声明语句: float*g(); 因为()的

    日期 2023-06-12 10:48:40     
  • C++数组和指针

    C++数组和指针

    《C++ Primer 4th》读书摘要 与 vector 类型相似,数组也可以保存某种类型的一组对象;而它们的区别在于,数组的长度是固定的。数组一经创建,就不允许添加新的元素。指针则可以像迭代器一样用于遍历和检查数组中的元素。设计良好的程序只有在强调速度时才在类实现的内部使用数组和指针。   此常量表达式只能包含整型字面值常量、枚举常量或者用常量表达式初始化的整型 const 对象。

    日期 2023-06-12 10:48:40