C++详解 --- 关于指针(2)

本文深入探讨C++中的指针应用,特别是如何利用指针实现链表。介绍了动态内存分配的概念,包括new运算符的使用以及何时释放内存。此外,文章还提及了malloc()函数在C++中的地位及其与new的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次我们初步了解了c++中的指针(关于指针(1)),这次,让我们看看指针的妙用。

指针实现链表

        链表是一种复杂的数据结构,在C++中实现链表的方式多种多样,这里主要讲一种

                代码:

#include<iostream>
#include<stdio.h>

using namespace std;

struct node{
    int data,num;//数据、序号
    struct node * next;
}*head , *p , *q;

int main(){
    head=p=nullptr;
    q=new node;//动态内存
    q->next=nullptr;
    q->num=1;
    int a=-1;
    cout<<"第一个数字:"
    cin>>a;
    q->data=a;
    head=q;
    while(a){
        p=q;
        q=new node;
        q->next=nullptr;
        p->next=q;
        q->num=p->num+1;
        printf("第%d个数字:\n",q->num);
        cin>>a;
        q->data=a;
    }

    //输出:
    q=head;
    p=nullptr;
    while(q->data){
        printf("第%d个数字是:%d\n",q->num,q->data);
        q=q->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值