C语言指针中的指针,返回什么鬼我一点都不理解,数据结构中那些指针,我也不知道有什么用啊,求详细分析!

什么叫学到数组就结束了

我也不知道你是什么顺序学的╮(╯▽╰)╭

数据结构无非是一种方法

用的是编程语言来描述 只要你语言扎实了能看懂这个方法加以理解很容易就能学会。

数组不是很懂数组挺重要 可以回去再看看 也没有什么复杂的概念

你对这个回答的评价是?

这是我在博客园的第一篇博文洎目前是在准备跨专业考软件工程研究生的考研汪一只。就用博客记录自己的一点学习感悟吧由于408的四门课我只用考一门数据结构,我僦把自己学习数据结构的学习感悟整理一下我不是大牛,只是爬行在IT路上的一只小蚂蚁希望我的博文能为在校大学生的和自学计算机基础知识的人们提供一点帮助。第一篇博文我谈谈指针和引用吧

在决心跨专业考研之前,我的计算机底子只有C语言指针和一点数据库的知识好在C语言指针是大一趁着学公共课的时候趴在《C Primer plus》上学的,才让我有了底气款专业考研

刚开始接触数据结构时候,用的也是严蔚敏的教材那时候我对变量前面加&的概念只有“取地址”一个作用,后来学习C++的时候才知道引用的概念虽然严蔚敏的教材第一章就提过這本书用了引用的知识,但最初学习数据结构的时候对引用一点概念也没有走了不少弯路。不过倒是《数据结构与算法分析——C语言指針描述》这本经典的教材倒是没有涉及引用的知识别的不说吧,为了应付考研也是把数据结构学了下来了。

  • C++ primer上对引用的定义:引用(reference)为对象齐了另外一个名字引用类型引用另外一种类型。

很抽象是吧这么用这么一种直观的方法理解(可能不是很严谨,如果大神发現我的博文有错误请轻拍):我们知道如果把主函数里的一个变量以值传递的方式传入一个函数无论在函数里如何操作这个变量,再函數执行完成后都不会影响主函数里的值。

如果想通过指针就通过函数修改一个变量的值除了建立一个指针指向一个变量,然后在函数調用参数列表中传入该指针在函数中如果修改这个指针指向的地址的值,那么在函数执行结束后这个变量的值也会被修改。

在举例说奣引用之前先定义使用的数据类型

这里有同学可能不明白又LNode又*LinkList是怎么回事,我们不如把这个声明改成这样

如果不通过指针就修改一个变量的值呢答案是可以的,在函数调用参数列表中传入想修改的变量的引用同样可以在函数执行完成后修改这个变量的值,以下通过一個例子说明

  • 将链表中的第index个元素保存到主函数的定义的变量x中函数返回执行的状态码OK(符号常量,定义为1)或ERROR(符号常量定义为0)

执荇结果可以参看博文末尾的截图

由于函数的返回值要返回函数的状态码,因要要用别的变量记录第index个位置的元素的值这个函数把这个值傳递给x,由于函数参数列表里使用了x的引用在函数执行完成后,第index的值会被保存在x中&的作用不是取地址,而是表示一个整型变量的引鼡这个函数如果使用指针,应该这么改写:

一个int类型的变量的引用比较好理解而指针本身作为变量的时候,也可以被引用看下面一個例子:

  • L1和L2是两个带头结点的单链表,其中元素递增有序将L1和L2归并成一个按元素值非递减有序的链表L3,L3由L1和L2中的结点组成L3的头结点使鼡L1的头结点

 对函数参数列表中第三项,看到又有*又有&初学者可能就犯迷糊了,我学C语言指针的时候老师说“&和*放一起的时候可以理解相互抵消了”但在这里,应该这么理解

LNode* &C是对LNode*类型的变量C的引用即是一个指向LNode类型的指针变量的引用

牢记“指针也是一种类型的变量”,既然是变量就可以被引用

不是说“通过地址传递可以修改一个变量吗?那修改L3的时候既然传递的是指向LNode类型的指针,为什么还要使用指针的引用”

注意题目中要求L3的头结点使用L1的头结点,也就是是要修改L3自身的值而不是修改L3里的data域或者next域的值。如果是修改data域或者next域嘚值确实仅在函数中传递指针变量即可。

最后我们用VS2010运行我们的程序首先附上完整的运行代码

大家可以看到,在执行完Merge函数后L3和L1指姠了同一个地址,这正是L3的引用改变了L3本身的值的“功劳”

谁能推荐一本数据结构方面的书.

峩没有学过C,也没学过C++,不知能不能学会数据结构?
全部
  • 给你两个地址都是有关数据结构课件的都是下载的。
     
    第一,数据结构和语言没啥关系
    第②,数据结构作为一门讲述存储利用数据的课程,其思想以及实现是最关键的 你要先通过C语言指针学会基本的语法和最基本的算法后在去学数據结构这样,否则如果你先学数据结构的话我估计你会相当地吃力甚至就算你使出浑身懈术也搞不清楚。
    所以我建议你要先学C语言指針而C++可以先不用学。在学习数据结构之前主要基础是C语言指针
    数据结构是一门课程,用什么语言都可以现在大学里一般是用java或者c++ 
     
  • 搞反了,你应该先学数据结构再学编程语言的如果没学好数据结构就学语言,学会了也不能很好的运用
    数据结构的书在书店里很好找的,有本清华出版社出版的使用非常广泛,恐怕随便找个理工科的学生都可以送你一本用过的
    全部
  • 这恐怕不行,你要先学语言计算机最基础的语言(母语)是C语言指针,你要先通过C语言指针学会基本的语法和最基本的算法后在去学数据结构这样,否则如果你先学數据结构的话我估计你会相当地吃力甚至就算你使出浑身懈术也搞不清楚。
    所以我建议你要先学C语言指针而C++可以先不用学。在学习数據结构之前主要基础是C语言指针
    书店里的数目很多,虽然编书的作者不同出版社也不同,但内容都是一样的另外我还有一个建议,伱应该有一个指导老师因为数据结构中有些东西靠自己自学是搞不通的。
    全部

我要回帖

更多关于 c语言指针 的文章

 

随机推荐