C语言 二重指针深入理解

k->[sss] ------>k是指针,指向内存区,内存区存的数据是sss   ,那么,*K的内容就是sss           (*k)<==>sss

sss->[hhh]---->sss是新的地址,是指针,指向内存区域,内存区域的数据是hhh,那么,*sss的内容就是hhh     (*sss)<==>hhh

综上所述,二重指针(*(*k))=====>就等于hhh

也就是取k地址的内容作为一个新的地址,然后再取这个新的地址的内容

2、思考链表

其实嘛,和链表很像

typedef struct node

{

  int num;

  node*point;

};

struct node * head;

int num1=5;

int num2=6;

int num3=7;

int num4=8;

(*head).num=num1;

struct node second;

(second).num=num2;

(second).node=null;

(*head).node=*second;

(*head).node//这个是根据一个地址,取地址里面的内容

(*(*head).node).num  //这个是根据这个新的地址,去取对应的数据、

说白了,就是二重指针

时间: 2025-01-16 05:00:26

C语言 二重指针深入理解的相关文章

C语言二重指针与malloc

(内容主要源于网上,只是加入了些自己的剖析) 假设有一个二重指针: char **p; 同时有一个指针数组 char *name[4]; 如何引用p呢? 首先我们有程序代码如下 #include <stdio.h> int main() { char *s = "I love you"; char *s1 = "you love me"; char *s2 = "she love you"; char *s3 = "he l

c语言函数指针的理解与使用

转载:http://www.cnblogs.com/haore147/p/3647262.html 1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2

【C语言学习】指针再理解(一)

★内存和地址 内存的基本单位是字节,那么内存就可以按字节进行编址,就是给组成内存的所有连续的字节安排地址.其中一个最恰当的比喻就是房子与门牌号,假设有20间连续的房子,从最左边(或者左右边)开始分配门牌号1~20,给内存中字节分配的地址就相当于门牌号,字节就相当于房间.字节的容量只能存储一个字符.那么,内存是如何存储比字符更大的数据呢,比如:整型数据.浮点型数据? ★更大的内存单元 为了存储更大的数据,就会把两个字节或者跟多的字节合在一起组成更大的内存单元.比如内存可以以"字"为单位来

C语言中指针*p[N], (*P)[N],及**p的区别

在C语言编程中指针经常困扰着我们,但是若能灵活运用指针的话,将会使得我们编程变得更加轻松与高效.这里讲下*p[N], (*P)[N],及**p的区别,这也是之前经常困扰我的地方. 这三者的定义分别为: int  *p[N]表示指针数组,也就是说定义了N个不同指向int型的指针. int (*p)[N]表示定义一个指针,指向一个int[N]型的指针. int **p 表示定义一个指向指针的指针. 注意[]的优先级要高于*. 指针即表示一个存放某种数据类型变量的地址,例如: #include <st

C#委托与C语言函数指针及函数指针数组

C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用的时候通过指针访问这个函数. 在C语言中函数指针的申明如下: //可以理解为申明一个指着变量 Func ,它的类型是 返回Type(可以为 void )类型的参数,接收 (Type one,Type two,...)类型的//参数(可以不接受参数). Type *Func(Type one,Type

Delphi指针运用理解

现在是面向对象漫天飞的年代了,大家都在在谈面向对象编程.Java对指针“避而不谈”,C#虽然支持指针运用,但是也淡化处理. 然而,指针还是好完全掌握为妙,省得在开发过程碰钉子,至于对指针的运用在于开发人员的存乎于心,运用得当.指针运用的不好,不要怪开发语言及其机制.下面谈到的是在Delphi中指针的运用,至于其他语言,指针的思想是相通的. 指针是一种数据类型,和编程语言中其它的类型一样,是一种类型的区分,比如 Integer 是带符号的整型,在32位X86机中,是用4个字节表示,而指针也是用4个

黑马程序员-关于C语言的指针一些小知识点

------- IOS培训.android培训.java培训.期待与您交流! ---------- c语言的难点和精华部分就是指针,能够将指针完全理解并且将其运用熟练不是一件容易的事情,其中有几个知识点比较绕一些. 1.数组指针与指针数组的区别.  数组指针是一个指针,是指向数组的指针,就如同int*,char*型指针,只不过它是指向数组的(首元素),大小为4(32位平台下),通过它就可以做找到整个数组. 1 #include <stdio.h> 2 int main(int argc, ch

一重指针和二重指针

今天从函数传参的角度来理解指针.如果想交换两个变量a,b的值,我们会这么做: int temp; temp = a; a = b; b = a; 如果要把以上功能封装成一个函数,最开始的反应是: func(int a,int b) { int temp; temp = a; a = b; b = a; } 但是func(a,b);这个函数执行完之后,a和b的值并没有交换.变换的只是函数内部的临时变量.以上这种方式无法改为函数外部的变量——a和b. 那么在函数的内部如何改变外部的变量呢,答案是指针

IOS开发系列--C语言之指针

概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移越来越模糊,感觉指针难以掌握,本文通过简单的例子试图将指针解释清楚,今天的重点有几个方面: 什么是指针 数组和指针 函数指针 什么是指针 存放变量地址的变量我们称之为"指针变量",简单的说变量p中存储的是变量a的地址,那么p就可以称为是指针变量,或者说p指向a.当我们访问a变量的时候其实是程序先根据a取得a对应的地址,再到这个地址对应的存储空间中拿到a的值,这种方式我们称之为"直接