二级指针也引用

#include <iostream>

void fun1(int*& p)//引用p等于就是传过来的p,引用改变了p也就改变了
{
    p = new int;
    *p = 90;
}

void fun2(int** p)//直接将指针的地址传过来,直接通过指针的地址操作指针
{
    *p = new int;
    **p = 90;
}

int main()
{
    int *p;
    fun1(p);
    fun2(&p);
    getchar();
    return 0;
}

这些相当于最基础的东西了

时间: 2025-01-08 17:33:29

二级指针也引用的相关文章

二级指针**P

首先理解几个概念: 1.对于一个普通变量,进行引用操作,得到的是一级指针.如int a=0;int *p=&a,则&a就是一级指针.因为&a的值就是a的地址,p的值也是a的地址,则&a和p就是一级指针变量(简略为指针),对&a进行解引用操作,int b=*&a;这b等于0. 2.对于普通变量作为形参传递到函数内部,参数的值传递就意味着只是简单的将变量的值copy了一份到临时变量中,然后将临时变量传递给函数,然而临时变量和原始变量是没有任何关系,则函数是无法改

链表:二级指针的使用

博文的记录源自阅读著名的酷壳主页:http://coolshell.cn/articles/8990.html Coolshell图文并茂说明了这个问题——我们在删除链表的时候,常常需要记录该结点在链表中是否有前趋prev.如果有,那么需要把prev->next指向该结点的next域,然后再删除该结点,这样才能保证链表不会因为删除结点而“断开”.像这样: void remove(list_node **ref_head, list_node *del) { if ((*ref_head) ==

彻底理解链表中为何使用二级指针或者一级指针的引用

 彻底理解链表中为何使用二级指针或者一级指针的引用 http://blog.csdn.net/u012434102/article/details/44886339 struct _node  {  void*data;  struct_node *prior;  struct_node *next;  } typedef_node Node;   //给这个_node结构体定义一个别名,任何使用_node的地方都可以用Node来替换 typedef_node* PNode;   //给这个指向

C++二级指针和指针引用

前提 已经清晰一级指针和引用. 可参考:指针和引用与及指针常量和常量指针 或查阅其他资料. 一级指针和二级指针 例子 个人觉得文字描述比较难读懂,直接看代码运行结果分析好些,如果想看文字分析,可参考文末参考文章. #include <iostream> using namespace std; void make(int **pp) { **pp = 66;//这样只是改变了指向的值,即a, 指向没有改变 } int main() { int a=5; int *q=&a; int *

二级指针与二维数组

最近看<Linux C程序设计大全>这本书,虽然书中有一些错误,但整体来说,书写得还算可以. 当看到网络编程[第23.2.4小节 获得主机信息]时,遇到了一段代码,原文如下: “一台主机有许多和网络相关的信息,例如,主机名称.IP地址.主机提供的服务等.这些信息一般都保存在系统中的某个文件里(例如/etc/hosts等),用户程序可以通过系统提供的函数读取这些文件上的内容.Linux环境下使用gethostent函数读取和主机有关的信息,该函数的原型如下: 1 #include <net

c++中的悬浮指针和野指针 二级指针

(1) c++中的悬浮指针:声明了但没有被付值的指针,它指向内存中的任意一个空间.避免悬浮指针的一个方法是开始就付值为NULL (2)"野指针"不是NULL指针,是指向"垃圾"内存的指针.人们一般不会错用NULL指针,因为用if语句很容易判断.但是"野指针"是很危险的,if语句对它不起作用.野指针的成因主要有两种: 一.指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以,指针变量在创建的同

C语言一级指针与二级指针

指针的概念 指针就是地址, 利用这个地址可以找到指定的数据 指针就是地址, 那么在使用的时候, 常常会简单的说 指针变量为指针 指针变量就是存储地址的变量 int *p1;// 申请了一个变量, 即在内存中开辟了一块内存, 存储数据 // 开辟了 8 个字节, 在 Mac 下 指针都占 8 个字节 使用指针, 实际上应该说成使用指针变量 1> 算术运算 +1 移动几个字节? 看类型: int *,  long *,  char * 2> 获得地址表示的数据 指针里面存储的是地址, 就可以将该地

二级指针的使用详解

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46629065 一.概念 在如下的A指向B.B指向C的指向关系中: 首先 C是"一段内容",比如你用malloc或者new分配了一块内存,然后塞进去"一段内容",那就是C了.C的起始地址是0x00000008. B是一个指针变量,其中存放着C的地址,但是B也要占空间的啊,所以B也有地址,B的起始地址是0x00000004,但是B内存中

C提高4 多维数组,结构体与二级指针

昨天的试题:原题见昨天作业题 [email protected]:~/high/day03$ cat main.c  /* 二级指针,绝佳训练题1 */ #include <stdio.h> #include <stdlib.h> #include <string.h> int spitspring(char *buf1,char *c,char **myp,int *total) { char *p_head =  buf1; char *p_tail =  buf1