一.变量:

声明一个变量系统是没有给这个变量分配内存空间的:

例:

int j;//编译的时候是没有分配内存空间的
int i=;//计算机在编译的时候就会给这个i分配4个字节的内存空间

二.malloc动态分配内存地址:

回想一下:我们在程序中存储一个整数10;除了使用int a;在内存中申请一块区域来存储,还有一种方法:
              malloc(4);                    //从内存中申请4个字节大小的内存存放整数10
  在C中经常看到这样的写法:
        (int *)malloc(sizeof(int));  //sizeof(获取int类型所占的字节数)
                                                //(int *)表示申请的这些字节数用于存放int类型的整数
例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int b;
b=(int)malloc(sizeof(int)); //没有这句话,变量b 是不占内存的,printf输出就会空指针异常;有这句话,就输出的申 请的内存地址
printf("%d",b);
system("pause");
return ;
}

三.C中的*和&:

       *:代表取内存中的值(*还有乘法运算,这个就不多解释了)
       &: 代表获取的是变量的地址
       **:二级指针(就是地址里面存放第三个变量的地址地址)
       ->:结构体指针运算符(用于访问结构体内部成员的)
 
例(二级指针的例子):
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[]={,,,,};//这个数组里存入的是具体的数据
int *num[]={&a[],&a[],&a[],&a[],&a[]};//这个数组里面就是全部存的数内存地址,并不是数据
int **p,i;
p=num;
for (i = ; i < ; i++)//注意这里,C语言是不能在这里进行变量的定义的如:int i
{
printf("%d\t",**p);//这里的p表示num数组的首地址,*p表示num[1]的值,也就是a[0]的地址,**p就是值了
p++;//指针向下移一格
}
system("parse");
return ;
}
四.链表(遍历):
根据以上知识点,就可以进行简单的链表的遍历了
例:
#include <stdio.h>
#include <stdlib.h>
struct note
{
int data;
struct note *next;
};
int main()
{
struct note *head,*p,*q,*t;//
int i,n,a;
scanf("%d",&n);//有多少个数
head=NULL;//头指针初始化为空
for (i = ; i < n; i++)//循环读取n个数
{
scanf("%d",&a);
p=(struct note *)malloc(sizeof(struct note));//动态申请一个节点的空间,存放节点
p->data=a;//将数据存入data中
p->next=NULL;//设置当前指针的后续指针指向空
if(head==NULL)
{
head=p;//如果这是第一个创建的节点,就让头指针指向这个
}
else
{
q->next=p;//如果不是第一个节点,就让前一个的后续指针指向当前节点
}
q=p;//在将q也指向当前节点
}
t=head;
while (t!=NULL)
{
printf("%d\t",*t);
t=t->next; //继续下一个节点
}
system("pause");
return 0;
}
五.后记:

 
         以上只是对链表进行了遍历,链表数据的添加删除,后续继续更新
 

指针与数据结构算法_链表(C语言)的更多相关文章

  1. 数据结构&算法-单链表

    1.引言 工作一年了,感觉越来越懒散,把很多基础性的东西都慢慢遗忘了,最近想趁着还没忘完,回顾一下,整理了点笔记,分享一下. 如有错的地方,欢迎大家怒喷. 2.学习 我们就从最简单的链表开始吧. 链表 ...

  2. 数据结构算法之冒泡排序——Java语言实现

    今天来谈下冒泡排序算法,这次实现由两种形式如下所示: 1.对于长度为N的数据序列,没有加标签限制,针对一开始就是有序的数据序列,仍然需要排序N-1趟来完成排序. 2.对于长度为N的数据序列,加标了签限 ...

  3. 数据结构算法与应用c++语言描述 原书第二版 答案(更新中

    目录 第一章 C++回顾 函数与参数 1.交换两个整数的不正确代码. 异常 10.抛出并捕捉整型异常. 第一章 C++回顾 函数与参数 1.交换两个整数的不正确代码. //test_1 void sw ...

  4. 数据结构 - 动态单链表的实行(C语言)

    动态单链表的实现 1 单链表存储结构代码描述 若链表没有头结点,则头指针是指向第一个结点的指针. 若链表有头结点,则头指针是指向头结点的指针. 空链表的示意图: 带有头结点的单链表: 不带头结点的单链 ...

  5. Java数据结构和算法之链表

    三.链表 链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LINK对象中 ...

  6. 数据结构算法集---C++语言实现

    //数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...

  7. js数据结构与算法--单链表的实现与应用思考

    链表是动态的数据结构,它的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成. 现实中,有一些链表的例子. 第一个就是寻宝的游戏.你有一条线索,这条线索是指向寻找下一条线 ...

  8. 用Python实现的数据结构与算法:链表

    一.概述 链表(linked list)是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接(参考 <算法:C语言实现>). 根据结构的不同,链表可以 ...

  9. 【数据结构与算法】多种语言(VB、C、C#、JavaScript)系列数据结构算法经典案例教程合集目录

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 2. 专栏地址 「 刘一哥与GIS的故事 」之<数据结构与算法> 3. 专栏目录 [经典回放]多种语言系列数据结构算法 ...

随机推荐

  1. Spark中的键值对操作-scala

    1.PairRDD介绍     Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD.PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口.例如,Pa ...

  2. HDU-1232-畅通工程(并查集)

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1232考察并查集,(最小生成树)题目很简单用k记录树根的个数,k-1就是还需要建设的路 #include& ...

  3. Cookie的一些用法

    Cookie的一些用法: package com.stono.servlet.listenerorder; import java.io.IOException; import java.io.Pri ...

  4. Bootstrap入门(二十四)data属性

    Bootstrap入门(二十四)data属性 你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码.这是 Bootstrap 中的一 ...

  5. java工程打包成jar包,并且解压lib里的jar包

    在我们开发完java工程部署时,有时不需要web容器,为了方便部署有时候需要打成jar包. 这里介绍2种Eclipse打jar包的方式, 方式一.工程引用的jar包打在lib目录下 1.工程上右键,E ...

  6. python中关于发邮件的示例

    发送邮件示例代码如下: from WebUtils import ProperitiesLoad from email.mime.text import MIMEText from email.mim ...

  7. 为什么python适合写爬虫?(python到底有啥好的?!)

    我用c#,java都写过爬虫.区别不大,原理就是利用好正则表达式.只不过是平台问题.后来了解到很多爬虫都是用python写的.因为目前对python并不熟,所以也不知道这是为什么.百度了下结果: 1) ...

  8. Redis key 相关命令

    其实本质上,Redis 就是一个Key---Value 数据库.这里我先介绍下Redis中关于的key的相关命令, 注意:key是字符串存储,但是不能使用 空格 或者 “\n”,value 则可以使用 ...

  9. 2017《JAVA技术预备作业》 1502 陈明宇

    1.阅读邹欣老师的博客,谈谈你期望的师生关系是什么样的? 我期望的师生关系应该是亦师亦友的关系,美丽的校园是我们学生居住生活最久的地方而老师则是和我们接触最为密切的人.在课堂上,老师是辛勤的园丁,向我 ...

  10. [html5] 学习笔记- html拖放

    拖放是一种常见的特性,即抓取对象以后拖到另一个位置,在HTML5中,拖放是标准的一部分,任何元素都能够拖放. 1.html5拖放:(drag和drop)是HTML5标准的组成部分 拖动开始:ondra ...