一.变量:

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

例:

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. 时钟(AnalogClock和DigitalClock)的功能与用法

    时钟UI组件是两个非常简单的组件,DigitalClock本身就继承了TextView——也就是说它本身就是文本框,只是它里面显示的内容总是当前时间.与TextView不同的是为DigitalCloc ...

  2. sqlserver怎么将查询出来的数据存到新的数据库表中

    查询结果直接创建一个新表存放select * into [新表名] FROM [原表名]WHERE 车辆='小汽车' 若新建表要放在另一个数据库B中USE BGOSELECT * INTO [新表名] ...

  3. Bootstrap入门(二十九)JS插件6:弹出框

    Bootstrap入门(二十九)JS插件6:弹出框 加入小覆盖的内容,像在iPad上,用于存放非主要信息 弹出框是依赖于工具提示插件的,那它也和工具提示是一样的,是需要初始化才能够使用的 首先我们引入 ...

  4. linux开机自启动服务优化设置命令

    1.设置成英文字符,避免出现乱码[root@xuegod62 ~]# LANG=en2.两种配置linux开机自启动服务命令:1)[root@xuegod62 ~]# ntsysv2)[root@xu ...

  5. linux系统时间同步

    1.linux系统时间同步[root@xuegod62 ~]# /usr/sbin/ntpdate ntp1.aliyun.com2.linux系统定时同步[root@xuegod62 ~]# ech ...

  6. 关于Coursera上的斯坦福机器学习课程的编程作业提交问题

    学习Coursera上的斯坦福机器学习课程的时候,需要向其服务器提交编程作业,我遇到如下问题: 'Submission failed: unexpected error: urlread: Peer ...

  7. C++编程练习(4)----“实现简单的栈的链式存储结构“

    如果栈的使用过程中元素数目变化不可预测,有时很小,有时很大,则最好使用链栈:反之,如果它的变化在可控范围内,使用顺序栈会好一些. 简单的栈的链式存储结构代码如下: /*LinkStack.h*/ #i ...

  8. VS中生成debug和release的小问题

    vs里生成dll,需要在解决方案上右键"属性",然后"配置",点击右上角"配置管理器(0)",选择debug或release,方可生效.不然 ...

  9. 【译】JavaScript Promise API

    原文地址:JavaScript Promise API 在 JavaScript 中,同步的代码更容易书写和 debug,但是有时候出于性能考虑,我们会写一些异步的代码(代替同步代码).思考这样一个场 ...

  10. 浅谈 MVC中的ViewData、ViewBag和TempData

    ViewBag和TempData的区别 ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才 ...