指针初步认知

指针初步认知

指针的运算符

  • int *score,score1=98
    定义一个int 型的指针变量,可以理解为定义了int *型的变量score。
  • score=&score1 &表示取地址
    把score1的地址放在score指针变量中。
  • cout<<*score;
    这里的 * 表示间接引用,取出这个指针存放的地址所指向的变量,即98。

指针初始化

  • int age,*add_age=&age //add_age初始化为指向整型量age。
  • 任何类型指针都可以赋以0值(NULL),即当前该指针并不指向该类型的任何一个变量,也不是指向地址为0的内存空间。称空指针。
  • 常量是不可寻址的,add_age=&10是错的。
    常变量是可寻址的,const double PI=3.14;const double *pointer=&PI; //指向常量PI的指针必须是常量指针

指针赋值

  • 同类型指针可以相互赋值
    int val1=18,val2=20,
    *p_val1=&val1,
    *p_val2=&val2,
    p_val1=p_val2,
    指针相互赋值后的变化

指针常量和常量指针

  • 常量指针
    double a,b;
    const double *pointer=&a;
    *pointer=b;//错误
    pointer=&b;//成功
    常量指针是一个指向常量的指针,其初始化时指向的变量的值不可以通过该指针改变,但指针指向的地址可以改变。简单来说就是地址可变值不变。
  • 指针常量
    double a,b;
    double * const pointer=&a;
    *pointer=b; //正确
    pointer=&b; //错误
    指针常量,指针本身是常量,其初始化时所指向的地址是不可改变的,但它指向的目标a的值是可以改变的。简单来说就是地址不变值可变。

注意

  • 指针变量不可以随意地赋一个内存地址,我们并不知道那个内存地址中有什么,这种操作在程序中非常危险。
  • C语言的指针容易失控,在C++中增加了引用类型,它具有指针的主要功能,但限制了灵活性,使用更加安全。建议在函数参数传递中,能用“引用”时绝不用“指针”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值