【答疑释惑】指针的奥妙

从一个指针的例子说起,head指向链表的头:

1.ptr=head;

head=NULL;

2.ptr2=head;

head=head->next;

head=NULL;

这两个例子执行head=NULL后,分别对ptr、ptr2有什么影响。

上面的例子讲的就是指针和指针指向的内容。

第一个只是修改了head指针本身,让它指向了一块地址为NULL的内存,而ptr仍然指向之前的内存,所以对ptr并没有产生什么影响。

第二个修改的是head指针指向的内存的内容,后两句相当于head->next=NULL,这样更容易理解。head指向的那块内存中的next指针变量指向了NULL,因为ptr2和head指向的内容相同,所以ptr2指向的内存中的next为NULL了。


原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java学习

面试题69(关于类的成员变量调用的问题)

面试题69 2018年1月22日 ? 本期题目 (单选题)下列选项中哪一个是正确的? public class Test{ private float ...

2533
来自专栏数据小魔方

左手用R右手Python系列之——迭代器与迭代对象

接触过Python的小伙伴儿肯定都知道,Python中关于迭代器和可迭代对象运用的很广泛。迭代器可以以一种非常友好的方式使用在循环中,不仅节省内存,还能优化代码...

3498
来自专栏C语言C++游戏编程

警告,变量已死亡,C语言基础教程之变量作用域

任何编程中的范围都是程序的一个区域,其中定义的变量可以存在,并且超出该范围,无法访问它。有三个地方可以用C编程语言声明变量

670
来自专栏Python小屋

详解Python内置函数iter()用法

iter()函数用来返回指定对象的迭代器,有两种用法:iter(iterable)和iter(callable, sentinel),前者要求参数必须为序列或者...

2636
来自专栏小樱的经验随笔

C++STL中set的使用策略(详解)

set的英文意思是“集合”, 集合都不陌生吧,集合的特点有唯一性,即:每一个元素只有一个,所以set可以用来“去重”操作,set还有默认的排序。  1、头文件...

2545
来自专栏程序生活

Python itertools的使用简介无限迭代器chain方法

用*放在一个可迭代对象前面可以将对象拆分成多个单元素,比如first=[['1','2','3','4','4'],['2','4','2']],如果把*放在f...

481
来自专栏运维技术迷

连仕彤博客[Python笔记] isinstance() 函数

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。但是isinstance和type是有区别的:

371
来自专栏尾尾部落

[剑指offer] 把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字...

672
来自专栏Laoqi's Linux运维专列

数据类型转换

1275
来自专栏用户3030674的专栏

java集合的操作(set,Iterator)

Iterator、Collection、Set和HashSet关系  Iterator<——Collection<——Set<——HashSet  Iterat...

763

扫描关注云+社区