admin管理员组文章数量:1794759
c语言使用node类型指针,C语言学习
C语言中指针是最灵活,也最难掌握的东西,以前不知道指针究竟是什么,后来学习汇编后,慢慢理解了指针。
学习指针主要解决三个问题
指针是什么
指针有什么用
指针怎么用
先说几个概念,首先要明白,cpu在处理数据的也要解决三个问题,数据在哪里,对数据进行怎样的操作(读或写),怎么传数据。所以在计算机里面cpu和内存之间有三种线来解决这三个问题
这里写图片描述
地址总线 :找到cpu所想操作内存单元在那里
控制总线 :对cpu数据进行操作
数据总线 :传输数据
内存除了存储整形,浮点型数据之外,内存还可以存地址。那么我们就可以知道指针是什么了,指针就是存放地址值的变量,也就是说指针也是需要占用内存的。
那使用指针有什么用?
1.数据结构实现就需要指针来实现
例如定义链表LinkList这种数据结构,数据结构关注三个方面
逻辑结构
存储结构
运算
LinkList中Link表示其存储结构,使用链式实现,List表示逻辑结构,线性,一对一的关系。既要Link也要List,那么C语言怎么表示,链表有结点构成,C语言定义节点node
typedef struct node
{
datatype data;
struct node *next;
} LNode;
这里写图片描述
这里写图片描述
2.指针可以让程序操作内存,灵活使用,使程序简洁,高效
指针怎么用
指针的操作
赋值
取值
取指针地址
与整数加减
比较
写一个程序来认识指针
#include
int main(void){
int a;//变量名是变量a的地址
int b;
int * p; //指针是变量,其数值是地址 为什么要指定int类型的指针
a=100; //赋值,本质,根据a这个变量名寻址,然后把数值100,写入到已分配的内存单元
p=&a; // 指针赋值,&为取地址运算符,把a的值赋给p, p就指向了a所指向的内存单元 , * 为取值符号
printf("%p\\n",main); //函数名本质也是地址
printf("%d\\n",a);
printf("%p\\n",&a);
printf("%p\\n",&b);
printf("%p\\n",p); //p变量名 的就是 p的地址
printf("%p\\n",&p);
printf("%p\\n",p+1); //整数加给指针:整数都会指针所指类型的字节数相乘,然后结果加到指针的值上,减类似
printf("%d\\n",*p); //输出p指针所指的内存单元数据到屏幕 *p ,* 为取值符号
printf("%d\\n",sizeof(p));
printf("%d\\n",sizeof(a));
return 0;
}
屏幕输出
这里写图片描述
版权声明:本文标题:c语言使用node类型指针,C语言学习 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686628532a88196.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论