指针与链表结构理解
#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