指针和引用、链表

类、结构体、指针和引用

指针

#include<iostream>
using namespace std;
char a,b;//外面定义的变量存放堆中
int main(){
    int a=10;
    int*  p=&a;//&a是a的地址,*的含义是定义的变量是指针类型,变量的名字是p
    int** q=&p;//q是指针的指针,在定义的时候*号是起指示作用的,只是说明这个变量是指针类型。
    cout<<*p<<endl;//此处p的含义是取p中地址的值
    *p=12;  //将12赋给p地址中的值
    cout<<a<<endl;
    return 0;
}

指针与数组的关系

#include<iostream>
using namespace std;
char a,b;//外面定义的变量存放堆中
int main(){
    int a[3]={1,2,6};
    cout<<*(a+1)<<endl;//a代表地址,*a代表起始地址的值即a[0]
    return 0;
}

引用

#include<iostream>
using namespace std;
int main(){
	int a=10;
    int* pp=&a;//&a是a的地址,*的含义是定义的变量是指针类型,变量的名字是p
    int& p=a; //给a起了个别名,引用
    a=12;
    cout<<p<<endl;
}

链表

#include<iostream>
using namespace std;
struct Node{
    int val;
    Node* next;//*起指示作用,说明next是一个指针,
    Node(int _val){
        val=_val;
        next=NULL;
    }

};
int main(){
    /*  Node node=Node(2);//定义一个node变量
        Node* p=&node; //定义一个p指针,将p指针指向node变量的地址
        Node p= Node(2);   //定义一个p变量赋值为2

     */
    Node* p=new Node(2);   //定义一个p指针,new出来的是Node(2)的地址
    auto  q=new Node(5);
    p->next=q;// 调用用->还是.取决于前面是成员变量还是指针变量,跟后面没关系
      //头结点指的是链表的第一个结点的地址,而不是链表本身
      Node* head=p;
      while(p!=NULL){
          cout<<p->val<<endl;
          p=p->next;
      }
    return 0;
}
posted @   迟意  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示