C语言指针
#include<stdio.h> //链表结点的数据结构 struct ListNode{ int val;//数据域 struct ListNode *next;//连接下一个节点的指针 }; int main(){ // &取地址运算符 *间接运算符 int a=5; int v=*(&a); printf("a的地址=%p\n",&a); printf("a的值=%d\n",a); printf("v的值=%d\n\n",v); //访问和修改指针所指的变量值 int *ptr=&a; printf("ptr的地址=%p\n",&ptr); printf("ptr的值=%p\n",ptr); printf("ptr指向的变量的值=%d\n", *ptr); *ptr=100; printf("修改后a的值=%d\n\n", a); //创建5个链表结点aa,bb,cc,dd,ee struct ListNode aa,bb,cc,dd,ee; aa.val=1; bb.val=2; cc.val=3; dd.val=4; ee.val=5; //通过next指针,将它们一次相连 aa.next=&bb; bb.next=&cc; cc.next=ⅆ dd.next=ⅇ ee.next=NULL; struct ListNode *head=&aa; //指针head指向结点aa while(head){ //通过循环打印链表中结点的值、结点的地址和结点的next指针 printf("val=%d address=%p next=%p\n",head->val,head,head->next); head=head->next; } return 0; }