指针与链表结构理解

指针与链表结构理解
#include<stdio.h>
int main(void)
{
 int a=3,*p;
 p=&a;
 printf("a=%d,*p=%d\n",a,*p);
 *p=10;
 printf("a=%d,*p=%d\n",a,*p);
 printf("Enter a:");
 scanf("%d",&a);
 printf("a=%d,*p=%d\n",a,*p);
 return 0;
           解析:
          1.定义整形变量a和整形指针p :int a=3,*p;
          2.把变量a的地址赋给指针p,即p指向a :p=&a;
          3.输出变量a的值和指针p所指向变量的值 : printf("a=%d,*p=%d\n",a,*p);
          4. 对指针p所指向的变量赋值,相当于对变量a赋值: *p=10;
          5. 输出变量a的值和指针p所指向变量的值 : printf("a=%d,*p=%d\n",a,*p);
         6.输入a:printf("Enter a:");
             scanf("%d",&a);

指针变量是用来储存地址的,而一般变量是储存数值的。一个指针变量占用四个字节。格式为类型名*指针变量名。
      取地址运算符为&。通过它获取地址值。
       *为间接访问运算符。

动态链表结构不需要联续的存储空间,链表的结点之间是通过指针进行连接的。与数组结构相对比,链表进行插入或删除的时候不需要移动大量的元素,只需要修改相应的指针就可以了。所以,链表结构特别适合大量插入或删除的程序。
           链表结构中包含了两项:1,data变量,结构体类型变量,是链表结构的数据部分。
                                2,指针部分,指针名是*next,通过它可以指向下一个结点。*link也是一个小指针。
          在程序中需要用链表的地方,可直接写一个Node类型就可以了。

计科 15-2班   150809227

时间: 2024-10-15 17:41:19

指针与链表结构理解的相关文章

九章算法面试题57 拷贝带随机指针的链表结构

九章算法官网-原文网址 http://www.jiuzhang.com/problem/57/ 题目 给出一条带随机指针的链表,对其进行深度拷贝(Deep Copy). 带随机指针的意思是,对于每个节点,除了next指针指向下一个节点以外,还带一个randomNext指针指向任何一个链表中的节点或空. 深度拷贝的意思是,对于新复制出来的链表,是一条完全独立于原来链表的链表,对于这个新的链表进行任何操作都不会对原来的链表产生影响. Follow Up Question: 如果不能使用额外的辅助空间

指针与链表的理解

一.指针的概括 1.指针的类型       基本数据类型比如 int.char ,还有 一些复杂的比如 int (*p)[], 指向数组的指针,像这种的判断就是指针名字去掉 , 指针的类型类型就是 int(*)[],其实就是指向数组的指针  2.指针所指向的类型 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待.  你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型. 例如:int*ptr:指针所指向的

马兴150809305C语言的指针、链表的原理和各类操作

一.指针 1.运用指针 什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针. 根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值.当用在声明一个变量时,*表示这里声明了一个指针.其它情况用到*表示指针的取值.&是地址操作符,用来引用一个内存地址.通过在变量名字前使用&

C语言的指针、链表的原理和各类操作

心得体会: 堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的.然而要使用c语言这个工具解决实际问题,又必须掌握它.通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定.对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致.学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题.即把c语言作为工

C语言的指针、链表的原理和操作

心得: 堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的.然而要使用c语言这个工具解决实际问题,又必须掌握它.通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定.对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致.学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题.即把c语言作为工具,

C语言的指针、链表的原理

一.指针 1.运用指针 什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址,例如int.long和double.指针也可以是void类型.NULL指针和未初始化指针. 根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值.当用在声明一个变量时,*表示这里声明了一个指针.其它情况用到*表示指针的取值.&是地址操作符,用来引用一个内存地址.通过在变量名字前使用&

Pjlib中的链表结构

Pjlib的链表结构跟常见的链表结构有所区别,如下图所示: ? ? ? ? ? ? 图1:一般链表结构 ? ? ? ? ? 图2:pjlib中的链表结构 可以看到一般的双向链表是链表节点包含数据域,而pjlib中是数据域包含链表节点.一般的链表指针域是链表结构的指针,而pjlib中是数据结构的指针.这种结构的优势我还没有体会到,可能要慢慢体会吧,但对链表头的理解却造成些许困惑.链表头是一个单独的list,而prev和next指向的是含有list的data结构,这种结构总让我觉得怪怪的. Pjli

Nginx 链表结构 ngx_list_t

链表结构 ngx_list_t 是 Nginx 封装的链表容器,链表容器内存分配是基于内存池进行的,操作方便,效率高.Nginx 链表容器和普通链表类似,均有链表表头和链表节点,通过节点指针组成链表.其结构定义如下: /* 链表结构 */ typedef struct ngx_list_part_s ngx_list_part_t; /* 链表中的节点结构 */ struct ngx_list_part_s { void *elts; /* 指向该节点数据区的首地址 */ ngx_uint_t

关于指针和链表中的一些问题

学习数据结构时对指针和链表很迷糊,也就自己总结 一下,如果有错误或者理解上的错误欢迎指正,谢谢 指针 指针是什么,指针就是指针类型,就和int 类型,float类型等一样,而对于指针个人当时学习的时候总被*弄得迷糊, *的作用: 1:类型说明符,int*p,定义p是一个指向整型的指针变量,p就是这个地址,具体说明教科书有.所以有int *p;p=&a或者是int *p=&a;在这里时强调一点int* p,可以写成这种形式,是指p所指向的数据域是整型, 2:指针指向的值的运算 3:野指针 当