精华内容
下载资源
问答
  • 理清C++常量指针和指针常量这团乱麻
    展开全文
  • C++常量指针与指针常量_数组指针与指针数组_函数指针与指针函数 百度文库链接,讲的很详细: https://wenku.baidu.com/view/756b54ca6529647d272852a5.html

    C++常量指针与指针常量_数组指针与指针数组_函数指针与指针函数

    指针常量和常量指针的判断标准:就是看const修饰谁,谁就是常量。
    指针常量:可以和指针变量比较来理解,指针变量存储的地址值是可以改变的,而指针常量说明其存储的地址值无法改变,即指针指向的位置不变,但指向位置内部存储的值可以改变。
    常量指针:表示指向常量的指针,表示指针只可以访问所指向的位置,但是无法改变指向位置的常量值,当然指针变量也可以指向其他的常量。

    指针数组和数组指针的判断标准:就看有没有括号,*在括号里面说明是数组指针,没有括号说明是指针数组。
    数组指针:说明星号在括号里面,主体是指针,指向数组的指针。
    指针数组:说明没有括号,主体是一个数组,数组中的每个元素都是指针。

    指针函数和函数指针的判断标准:就看有没有括号,*在括号里面就说明是函数指针,没有括号说明就是指针函数。
    指针函数:说明没有括号,主体是一个函数,该函数的返回值是一个指针。
    函数指针:说明星号在括号里面,主体是一个指针,指向函数的指针。

    百度文库链接,讲的很详细:
    https://wenku.baidu.com/view/756b54ca6529647d272852a5.html

    指针常量和常量指针的讲解参考链接:
    声明:int const * p=&a;这个还是常量指针,不是指针常量! int *const p=&a 这个是指针常量!
    总结一句话,就是const修饰谁谁就是常量。
    链接1:https://blog.csdn.net/jackystudio/article/details/11519817
    链接2:https://blog.csdn.net/weixin_41028621/article/details/89159896?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

    展开全文
  • //指向常量指针:含义是不允许通过该指针对其所指对象进行写操作。 2.常量指针 int num = 1; int * const p2 = # //常量指针 :含义是该指针不允许移动(也即自增,自减等操作) 2.指向常量的常量指针 ...

    1.指向常量的指针


    const int num = 1;
    const int * p1 = #   //指向常量指针:含义是不允许通过该指针对其所指对象进行写操作。

    2.常量指针


    int num = 1;
    int * const p2 = # //常量指针 :含义是该指针不允许移动(也即自增,自减等操作)

    2.指向常量的常量指针


    const int num = 1;
    const int * const p3 = # //指向常量的常量指针

    便于记忆的方法是将其从右往左读,以第一个指向常量的指针为例:

    其他两个概念以此类推,

    参考书籍《C++实践之路》

    展开全文
  • C/C++ 常量指针,指针常量

    千次阅读 2015-09-04 11:39:55
    在这里就不再重复C/C++ 常量指针,指针常量的概念了,以下以一个例题作为讲解, 题目是华为的一个选择题: 刚开始我一直以为答案是C,D一样,但是经过分析后,我产生了较大的困惑,希望能得到大神的指导: ...

    在这里就不再重复C/C++ 常量指针,指针常量的概念了,以下以一个例题作为讲解,

    题目是华为的一个选择题:

    刚开始我一直以为答案是C,D一样,但是经过分析后,我产生了较大的困惑,希望能得到大神的指导:

    个人觉得A,B是等价的同时C,D也是等价的。
    A,B中,const位于*的左边,表示指针所指向的对象是常量,不能更改,但是指针是可以更改的,比如可以进行++,--等操作。
    相反的若const位于*的右边,表示指针本身不能更改,不能进行++、--、移位等操作,但是指针所指向的对象可以更改。
    下面举个例子:(程序中注释的语句都是错误的语句)
    #include <iostream>
    using namespace std;
    
     
    int main()
    {
    	int a=5;
    	int b=10;
    	int c=20;
    	cout<<&a<<endl;
    	cout<<&b<<endl;
    	cout<<&c<<endl;
    	const int *p1=&b;
    	p1++;
    //	*p1=20;
    	int const *p2=&b;
    	p2++;
    //	*p2=20;
    	const *int p3=&b;
    	p3++;
    //	*p3=20;
    
    	int * const p4=&b;
    	
    //	p4++;
    	*p4=100;
    
    	const int * const a1=&b;
    	int const * const a2=&b;
    //	a1++;
    //	a2++;
    //	*a1=200;
    //	*a2=100;
    
    
    
    	cout<<*p1<<" "<<*p2<<" "<<*p3<<" "<<endl;
    
    	return 0;
    }
    

    运行结果:

    程序中,变量a,b,c存储在栈中,存储的地址按低地址方向扩展。
    const int *p1, int const *p2, const * int p3都指向b的地址,由以上可知p1,p2,p3都是指向常对象的指针,即指针所指向的对象
    不能更改,但指针可以更改,如进行++操作。进行++以为操作后,指向变量a的地址,所以进行解引用(*)时输出变量a的值。但是在定义p3的时候出现了一个警告://
    : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
    而对于指针p4,int * const p4=&b,*位于const的左边,const修饰的是指针p4,即指针不能改变,但是可以改变指针所指向的对象。

    同理const int * const a1=&b;,int const * const a2=&b;是指向常量的常指针,即指针本身和其指向的对象都不能更改。

    展开全文
  • 常量指针,指向常量的指针,这个常量指的是地址,指针对应的值不可以改变 指针常量,可以被赋值,指针常量指向的地址为常量,不可以改变,但是地址对应的值可以改变 常量指针:const type *p 指针常量:type * ...
  • C++常量指针this

    2020-02-12 08:17:59
    在每一个成员函数中都包含一个常量指针,我们称其为this指针,该指针指向调用本函数的对象,其值为该对象的首地址。通过该指针,我们可以在成员函数的函数体内访问对象。其中this是C++的一个关键字。 #include<...
  • //常量指针 int const *p ;//常量指针 int *const P ;// 指针常量 const int *const p;//常量指针常量 int const * const p;//常量指针常量  三个名词演变出了五中形式,之所以这样是因为 ...
  • 常量指针 指向的内容不能被改变,不能通过指针来修改它指向的内容,既可以指向常量也可以指向普通变量。但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量。 指针常量 是指--指针本身是常量。它指向的...
  • 常量指针,指向一块区域,这块区域不可写,只能读。 char * const p; 指针常量,指向一块区域,这块区域可读可写,但是指针的值初始后就不能改,类似于一般常量。 const char * const p; 上面两种类型的综合,指针...
  • 要理解它们的差别,需要先掌握指针、常量指针、指针常量的概念。 1.指针 指针的本质也就是变量: 它不仅有自己的地址,也有它所存放的值,只不过这个值是地址而已。 int a = 10; int *p = &a; //指针变量...
  • 指针常量(常指针)   首先是一个常量,其次该常量是个指针。因为是一个指针类型的常量,所以定义时必须初始化一个变量的地址,且始终指向该地址不能被更改即只能赋值一次,但地址中存放的内容可以被更改。 通过...
  • 常量指针: 我们可以将指针声明为常量指针,这样指针是不可以改变的,但是指针指向的内容是可以改变。(指针中保存的地址是不可变的)。 #include using namespace std; class A  { public:  int get()...
  • C++常量指针与指针常量的区别

    千次阅读 2017-02-27 22:02:15
    C++提供了用const定义常变量的方法,例如:const int a =5;...这里主要区分一下指针常量和常量指针。 1:指针常量:表示:int a = 3,b=4;  int *const p2 = &a; 这里从表达可以看出来,const修饰
  • 今天学习C++的常量类型和引用,其中常量指针、指针常量、引用和常引用几个概念较为接近,特地整理一下。 1.常量指针(pointer to const) 常量指针,顾名思义,是指向常量的指针,其定义的一般形式为:const T...
  • 常量指针和指针常量的区别: ...C/C++中常把指针和常量混合起来使用,其最大的用途就是作为函数形式参数,保证实参在被调函数中的不可改变的特性,那到底常量指针和指针常量有什么区别呢? 首先一定要明白哪种定义方式
  • c++ 常量指针 const*const

    2015-07-10 17:23:27
    1.什么是常量指针 我们可以使用const 来修饰指针,在用const 修饰指针时,我们可以指出,指针自身,指针所指的内容,为常量 const。当const修饰指针时,如果关键字const出现在 星号* 左边 表示的是指针所指的内容为...
  • 1.当传递较大的数据结构作为参数时,用引用或者指针作为函数参数可以节省 一个复制的过程,提高效率。 看别人代码经常这样使用。想想为啥void Fun1(const classA&); void Fun2(const classA*);如果ClassA是大型的...
  • C++常量指针、指针常量 记忆法: 常量指针表示方法: const double * p = &a; //const读作常量,*读作指针,常量指针 double const *p = &a; 指针常量通常表示为: double * const ptr; //const读作常量...
  • 本文是根据崔毅东,杨谈老师c++程序设计(面向对象进阶)...常指针常量即为常量指针常量,顾名思义具有常量指针和指针常量二者的特性 示例: 上左:普通指针 上右:常量指针 下左:指针常量 下右:常指针常量 #i...
  • 指针常量与常量指针的翻译就好比机器学习中Regularization翻译成正则化一样,讲真,正则化这个说法确实要比规则化显得高端些,但是到了理解的时候,还是要按照规则化理解。指针常量与常量指针这个概念是一样的,英文...
  • C++指针常量与常量指针

    千次阅读 2020-07-08 11:21:35
    常量指针:而常量指针本质是指针,并且这个指针乃是一个指向常量的指针。其格式为:int const * p或者 const int* p。 1.变量与指针 当一个指针变量指向一个变量时,指针变量本身可以改变,也可以通过指针变量改变...
  • 文章移至: C++ 指针常量和常量指针的区别
  • C++之指针常量和常量指针

    千次阅读 2016-04-06 13:31:52
    指针常量: int a = 10; int b =20; int * const p = &a; 不能再改变 p的值: ...常量指针: int a = 10; int b = 20; const int * p = &a; 不能通过 *p,改变 a的值 *p = 100; 可以改变p的值: p
  • C++常量指针和指向常量的指针的区别、 一、常量指针和指向常量的指针的定义 1、常量指针 常量指针是指必须初始化,并且在初始化完成后,不允许改变它所存放的地址的指针,但是可以修改指针指向的元素的值。 2、...
  • 指针常量和常量指针的书写区别就是 “const”和“p”的位置指针常量,指向const的指针,指针可以修改,指向的数据不可以修改 常量指针,指针本事是常量,指针不可以修改,指向的数据可以修改
  • C++常量指针和指针常量的区别 一、常量指针 常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量),也就是指向一个无法修改的量。 C++常量指针定义为:const int* a,当然int const * ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,088
精华内容 57,635
关键字:

c++常量指针

c++ 订阅