精华内容
下载资源
问答
  • 主要介绍了C语言 一级指针与二级指针详细介绍的相关资料,需要的朋友可以参考下
  • C++ 一级指针和二级指针

    千次阅读 2017-03-09 09:35:51
    一级指针就是指指针,就是内存地址,二级指针就是指向指针的指针,就是地址的地址:打个比方,你有一个箱子A(相当于代码中的变量a),里面有你要的东西(值4),你的钥匙1(相当于一级指针p)能打开箱子A,这把钥匙就是...

    C++  一级指针和二级指针


    一级指针就是指向普通对象的指针,就是内存地址,二级指针就是指向指针的指针,就是地址的地址:打个比方,你有一个箱子A(相当于代码中的变量a),里面有你要的东西(值4),你的钥匙1(相当于一级指针p)能打开箱子A,这把钥匙就是一级指针,但是这把钥匙1又存放在另一个箱子B里,你需要另外一把钥匙2(二级指针q)打开箱子B取出钥匙1,如此类推.(魔塔通关的我还是这么强势~)

    #include<iostream>  
    using namespace std;
    
    int main(int argc, char**argv)  
    {
    	int a = 4;//定义一个变量a
    	int *p = &a;//定义一个一级指针p,保存的是变量a的地址,指向a
    	int **q = &p;//定义一个二级指针,保存的是指针p的地址,指向指针p
    
    	cout<<"一级指针的地址:                 "<<p<<endl;;//一级指针的地址
    	cout<<"引用 存储一级指针的地址:       " <<&p<<endl;//引用 存储一级指针的地址
    	cout<<"引用 存储一级指针地址所存储的值:"<<*&p<<endl;//引用 存储一级指针地址所存储的值
    	cout<<"一级指针所指向的值 :           "<<*p<<endl;//一级指针所指向的值
    	cout<<endl;
    	cout<<"二级指针的地址:                 "<<q<<endl;;//二级指针的地址
    	cout<<"引用 存储二级指针的地址:       " <<&q<<endl;//引用 存储二级指针的地址
    	cout<<"引用 存储二级指针地址所存储的值:"<<*&q<<endl;//引用 存储二级指针地址所存储的值
    	cout<<"二级指针所指向的值:            "<<*q<<endl;//二级指针所指向的值,即为一级指针p的地址
    
    	return 0;
    } 

    展开全文
  • 采用一级指针最好是方便修改指针对象的值,采用二级指针最好是方便修改指针的值。#include #include using namespace std;class haha { }; void main() { haha *p(new haha); printf("%p\n",

    我想不大理解二级指针的根源是我对程序对堆栈的用法还不够深入了解。
    采用一级指针最好是方便修改指针对象的值,采用二级指针最好是方便修改指针的值。

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    class haha
    {
    };
    void main()
    {
    
        haha *p(new haha);
        printf("%p\n", p);//一级指针的地址
        printf("%p\n", &p);//引用  存储一级指针的地址
        printf("%p\n", *&p);//引用 存储一级指针地址所存储的值
    
        cout << "===================" << endl;
    
        haha **pp = &p;//二级指针存储一个指针地址
        printf("%p\n", &pp);//引用  存储二级指针的地址
        printf("%p\n", *&pp);//引用 存储二级指针地址所存储的值
        printf("%p\n", pp);//二级指针的地址
        printf("%p\n", *pp);//二级指针的地址所存储的值
    
        cin.get();
    }

    运行结果如下:
    这里写图片描述

    • &p 0x002dfd60 {0x002ea438 {…}} haha * *
      &p 0x002ea438 {…} haha
      pp 0x002ea438 {…} haha
    • pp 0x002dfd60 {0x002ea438 {…}} haha * *
      &pp 0x002dfd54
    展开全文
  • 一级指针, 二级指针

    千次阅读 2018-01-23 16:23:17
    一级指针  通常用作,函数的输入参数,因为一级指针作为函数参数,在调用的时候,实参和形参是不同的内存空间,只是,这个内存空间存放的指针指向的是同一块地址 ,所以形参在函数执行中可以访问实参指向的内存...

    一级指针

      通常用作,函数的输入参数,因为一级指针作为函数参数,在调用的时候,实参和形参是不同的内存空间,只是,这个内存空间存放的指针指向的是同一块地址 ,所以形参在函数执行中可以访问实参指向的内存空间,但是形参的指向的改变并不能影响实参。 总结一句话“一级指针做函数参数, 在函数内做形参做重新指向并 不会影响实参的指向”

    一级指针应用需要注意的:①、不要在函数中,改变形参的指向来达到改变实参指向的效果,因为形参和实参只是两个指向同一空间的不同的指针。 ②、因为形参和实参指向的是同一空间,所以可以在形参中改变其指向空间的值,如此实参指向的空间地址也发生改变。



    从上面的运行结果可以看出,在pointer1 函数中改变形参p的指向,并不会改变实参p的指向。所以输入的值是一堆脏数据。

    但是,进行如下的修改之后,看看运行的效果。



    修改之后的运行结果,从代码的改动可看出  pointer1函数中修改的不是形参指针的指向,而是修改形参指针指向的空间的内容。这样就能达到一级指针做函数返回值的效果。


    二级指针

     通过二级指针,可以方便的通过改变形参的指向,来达到改变实参的指向的目的。


    打印的结果是20。


    总结:

     一级、二级指针都可以用作函数的返回值,使用一级指针作为函数参数的返回值,需要在调用函数之前申请内存空间,方便在函数中对该内存空间赋值,达到将函数的返回结果传出来的目的。 使用二级指针,无需申请内存空间,因为在函数内直接改变形参的指向就可以改变实参的指向, 指向的内存空间,只需要在函数内部申请即可(栈空间不可,因为栈空间用完即被释放,无法返回出来,可以使用动态内存分配)。

    学习的文章 http://blog.csdn.net/majianfei1023/article/details/46629065

    展开全文
  • c++二级指针和一级指针

    千次阅读 2019-06-16 16:17:42
    对于指针,大家都不陌生,最常见的就是一级指针用来指向一个变量,最简单的例子 这样可以通过对p解引用来改变a的值 那么二级指针是什么?分两种情况,一种是指向一个一级指针一级指针指向一个变量,可以如下...

    对于指针,大家都不陌生,最常见的就是一级指针用来指向一个变量,最简单的例子

    这样可以通过对p解引用来改变a的值

    那么二级指针是什么?分两种情况,一种是指向一个一级指针,一级指针指向一个变量,可以如下表示:

    这是一个简单的例子,题中,指针p存放的是a的地址,二级指针q指向变量p,即q存放的是p的地址,所以对q解一次引用得到的是变量p,即a的地址,解两次引用相当于对p解引用得到变量a:

    另一种可以简单认为二级指针就是指向一个二维数组的指针,类似于这样:

    那么p指针便指向了a数组的首地址,那么*p是什么呢?我们可以把它看做是对p进行一次解引用,然后指向了第一个数组元素即123

    来看实验结果:

    结果很明显。

    那么如果我想指向字符3,那么应该怎么办,前面说过了第一次解引用是指向了某个行的首地址,那么只要对其进行再次解引用即可得到某个字符

    好了至此便把二级指针讲清楚了,以上是个人观点,欢迎讨论更正。好了,总结一下,所谓二级指针它是一个指向二维数组的指针,可以通过解引用来得到某一行的首地址,在字符数组中,实际也就是字符串变量。如果解2次引用,那么即得到了该指针当前指向的内容。

     

    展开全文
  • 一级指针和二级指针的理解和总结

    千次阅读 多人点赞 2019-02-10 20:17:10
    一级指针 对于一级指针来讲, 我们再熟悉不过的应用就是修改实参的值 注意下方应用: #include &lt;stdio.h&gt; void changeValue(int* value); int main() { ...
  • 一级指针与二级指针

    千次阅读 2019-08-17 23:34:36
    一、一级指针 如下图所示,整型指针xptr指向变量x的地址。 int *xptr; int x=10; xptr = &x; 源码: #include <stdio.h> int main() { int *xptr = NULL; int x = 10; xptr = &x; printf...
  • 指针(一级指针,二级指针)

    千次阅读 2018-11-28 20:03:51
    一级指针 指针就是地址。 指针变量:代表地址的变量。 指针指向元素; int a = 10; int * P = &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a; 这里面的 P 就是一个一级指针,它指向的是 a 的...
  • 一级指针: int a; int *p; p = &a; &p//指针所在内存的地址 p//指针p的值,也就是所指向内存区的地址(a的地址) *p//p所指向内存区内的值(a的值) 二级指针: int **q; q = &p//q指向一个指针 ...
  • 一级指针和二级指针

    千次阅读 2013-01-11 15:18:22
    今天在http://www.csdn.net/article/2013-01-10/2813559-two-star-programming看到了linus关于指针的谈论,里面的两个例子,使我对我之前理解的指针产生了怀疑,于是又认真的玩起了二级指针。 1 void remove_if...
  • 深入阐述一级指针和二级指针的概念,解决函数传递时值传递和引用传递带来的困惑
  • 首先要知道一级指针只能用于存放普通变量的地址和一级指针地址。 二级指针只能存放指针的地址和二级指针地址。 同样的三级 甚至是多级指针能存放的是他前一级指针的地址以及同级指针地址。 int a=5; int *m=...
  • C:一级指针与二级指针的详解

    千次阅读 多人点赞 2019-10-29 15:04:43
    1.指针和数组 指针是个用来存放地址的变量; &arr表示整个数组; arr数组名表示首元素的地址;...一级指针就是指指针,里面放的就是元素的地址,我们可以通过访问元素的地址来找到该地址里存放的内...
  • 本博客主要介绍一级指针,二级指针,三级指针,指针数组和数组指针的综合应用示例。下面简单介绍指针数组和数组指针的区别:
  • 在用c/c++写数据结构程序时,链表和二叉树中经常需要用到二级指针或者一级指针的引用,那么什么时候用什么时候不用呢? 先看一个简单的c++链表操作程序: (虽然风格有点像c,不过这个是cpp文件,不要在意这些细节...
  • 一级指针与二级指针的定义以及使用详解 首先说下一级指针和二级指针概念: 一级指针: int a; int *p;//指针指向地址 p = &a; &p//指针所在内存的地址 p//指针p的值,也就是所指向内存区的地址(a的地址) *...
  • 一级指针还是二级指针作函数参数

    千次阅读 2015-10-06 16:25:02
    一级指针存放变量的地址,指向的值是变量的内容。如int* p={1,2,3}, p=数组的首地址,*p=数组的第一个值;  二级指针存放一级指针的地址,指向一级指针。如int*p ={1,2,3}, int**pp=&p,pp=指针p的首地址,*pp=...
  • const 修饰的一级指针和二级指针

    千次阅读 2018-05-12 17:22:54
    一、const修饰的一级指针(关于指针的简要介绍在这里,建议在阅读本篇博客前浏览一下点击打开链接) const int * p int const * p int * const p 被const修饰的符号,我们称为常变量(具有常量的属性),c++中...
  • 计导课讲到指针和动态内存分配,这里真是一个难点,很多概念容易混淆,有时候一个概念要查阅好多网站,看过很多博文才能理解,不过学习编程不就是这样嘛~~一定要想办法理解才行,所以今天归纳了关于一级指针和二级...
  • 为了锻炼和提高自己对指针的理解,特在结构体中嵌套一级指针和二级指针来加深对。#include #include #include #define false 0 #define true 1//结构体类型,每个导师有三个学生 typedef struct Tea { ...
  • #define _CRT_SECURE_NO_WARNINGS ...//结构体嵌套一级指针 二级指针 动态分配内存 typedef struct _Teacher { int age; int id; char *title; char **pStuarray; char name[64]; }Teacher; //打印结构体 v
  • 一级指针二级指针详解

    千次阅读 2015-08-08 23:12:38
    void  change_val( ...执行到语句[2]时,val不变,... 使用二级指针,也就是指针的指针时,其中一级指针是存放的是一个地址,二级指针存放的是一级指针的地址。也就是上面所说的p指针的值发生了变化。
  • const与一级指针二级指针结合

    千次阅读 2017-11-06 17:48:46
    关于const在C和C++里的不同我有时间再整理成另外篇。、首先来确定一下到底const修饰的是谁。句话,类型就近原则。 const int p; 此时离const最近的类型是int类型,所以const修饰的是 p; const int *p; 此时...
  • 不修改头指针就传一级指针(即头指针本身)。 这与普通变量类似,当需要修改普通变量的值,需传递其地址,否则传递普通变量的值即可(即这个变量的拷贝)。 如果用一级指针,则只能修改指针所指内容,却无法修改指针...
  • 在用c/c++写数据结构程序时,链表和二叉树中经常需要用到二级指针或者一级指针的引用,那么什么时候用什么时候不用呢?先看一个简单的c++链表操作程序:(虽然风格有点像c,不过这个是cpp文件,不要在意这些细节)...
  • 在C语言编程时,经常会用到指针或数组作为参数传递,但有时结果却并不是自己想要的。下面总结下指针、数组作为参数传递需要的问题。... 二级指针存放一级指针的地址,指向一级指针。如int*p ={1,2,3},
  • 二级指针与一级指针的一些区别

    千次阅读 2017-08-06 16:43:54
    1、将指针 pointer 作为参数传递给函数 modifyPointer(int* pointer) 时,实际传递的是指针的值(&n),而不是指针本身(&pointer) ---->函数 modifyPointer(int* pointer)也会新建个int *pointer 的局部变量,...
  • 一级指针的使用 在讨论指针的使用前,先重温一下函数的概念。在C语言中可以采用分组方式管理程序中的语句,我们把每个分组叫做一个函数。函数调用语句可以在程序执行过程中产生函数调用关系,但是一般情况下,一个...
  • 以前刚接触c语言没多久时,碰到涉及到一位数组、二维数组、一级指针、二级指针、指向一位数组的指针、指针数组、函数指针等的函数时就搞晕了,不知道怎么设计函数参数,调用这类函数的时候也是不知道怎么给函数传递...
  • #include #include #include #include int a=10,b=20; change(int *p) { p=&b; } changepp(int **pp) { *pp=&b; } int main() { int *p=&a; change(p); printf("%d\n",*p);... changepp(&p

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 365,309
精华内容 146,123
关键字:

一级指针