c语言指针


    //指针怎么用
    // (区分两个概念,指针变量和指向内容,指针变量只保存一个地址值,在这个地址值对应的内存中具体存放的东西叫做指向内内容)

  用变量给指针赋值

    int a = 5;
    int *p = &a;//用变量给指针赋值方式一(在声明指针时),需要用&(取址符)
    std::cout << *p << std::endl;// *(指针) :指向的内容

    int *w;
    w = &a;//用变量给指针赋值方式二(在声明指针之后),需要用&(取址符)
    std::cout << *w << std::endl;

  指针直接给指针赋值

    int *q = p;
    int *e;
    e = p;//指针直接给指针赋值,类型相同,直接赋值,同普通变量一般。
    std::cout << *q << std::endl;
    std::cout << *e << std::endl;

  双指针

    //双指针怎么用
    //(指向指针的指针)
    int *r = &a;//指针r指向整型变量a
    int **pp = &r;//指针pp指向指针r
    int *y = *pp;//将pp指向内容复制给整型指针y
    std::cout << **pp << std::endl;
    std::cout << *y << std::endl;

  结构体指针

typedef struct Node {
    char val;
    struct Node *left;
    struct Node *right;
} BiNode, *BiTree;

//该结构体声明相当于如下两步

//step 1.(声明结构体)
//struct Node {
//    char val;
//    struct Node *left;
//    struct Node *right;
//};

//setp 2.(起别名)
//typedef struct Node BiNode; 
//typedef struct Node * BiTree; 

 BiNode * C = (BiNode *) malloc(sizeof(struct Node));
 BiNode * D = (BiNode *) malloc(sizeof(struct Node));
 C->val = 'C';
 (*D).val = 'D';
 std::cout<<C->val<<std::endl;
 std::cout<<(*D).val<<std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值