指针例证

指针是一个神奇的东西……
指针类型可以强制转换,有特殊应用。
同类型指针可以相互赋值。
必须谨慎使用指针!
对指针变量绝不可以任意赋一个内存地址!
指针常量是固定指向一个对象的指针,即指针本身是常量。

#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int A, *B, *C;
void *D;
int E[3] = {3, 1, 2};
struct HH{
    int data;
    struct HH *next;
};
int main()
{
    scanf("%d", &A);

    D = &A;
    printf("%d\n", D);

    B = &A;
    //B指向A    *B=__ 即 A=__ 
    C = (int *) A;
    printf("%d %d %d %d\n", B, C, &B, &C);

    int *F = E;
    printf("%d %d\n", *F, F);
    //第一个数组变量赋值给指针

    HH *G = (HH *)malloc(sizeof(HH));
    G->data = E[0];
    G->next = NULL;
    printf("%d %d  ", G->data, G->next);
    HH *Head = (HH *)malloc(sizeof(HH));
    //这句不加会炸的
    Head->data = A;
    Head->next = G;
    printf("%d %d\n", Head->data, Head->next->data);

    HH *K = new HH;
    K->data = A;
    K->next = NULL;
    printf("%d", K->data);
    Head = NULL; 
    delete Head;
    //这句话一定要写!!

    int y=6909806;
    printf("%s\n",&y);
    return 0;
}
#include<iostream>
using namespace std;
void swap1(int p, int q){
    int temp = p;
    p = q;
    q = temp;
}
void swap2(int *p, int *q){
    int *temp;
    *temp = *p;
    *p = *q;
    *q = *temp;
} 
void swap3(int *p, int *q){
    int *temp;
    temp = p;
    p = q;
    q = temp;
}
void swap4(int *p, int *q){
    int temp;
    temp = *p;
    *p = *q;
    *q = temp;
}
void swap5(int &p, int &q){
    int temp;
    temp = p;
    p = q;
    q = temp;
}
int main ()
{
    int a = 1, b = 2;
    //swap1(a, b);
    //swap2(&a, &b);
    //swap3(&a, &b);
    //swap4(&a, &b);
    //swap5(a, b);
    cout << "a:" << a <<endl;
    cout << "b:" << b <<endl;
    return 0;
}
//能交换的:45

推荐:
C++指针超级强化训练

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值