zoukankan      html  css  js  c++  java
  • 指针与指针变量

      1、i_pointer是一个指针变量,而*i_pointer表示i_pointer所指向的变量即i。

    -------------



    下面两个语句作用相同:
    ① i=3;
    ② *i_pointer=3;

      2、定义指针变量:

    基类型 *指针变量名;
    下面都是合法的定义:
      float *pointer_3; // pointer_3是指向单精度型数据的指针变量
      char *pointer_4; // pointer_4是指向字符型数据的指针变量
    请注意: 指针变量名是pointer_3和pointer_4,而不是*pointer_3和*pointer_4,即“*”不是指针变量名的一部分,在定义变量时在变量名前加一个“*”表示该变量是指针变量

        针变量名是pointer_3,而*pointer_3表示指针pointer_3所指向的存储单元(如果是变量,那么他就指向这个变量)。
      那么,怎样使一个指针变量指向另一个变量呢?只需要把被指向的变量的地址赋给指针变量即可。例如:
      pointer_1=&i; //将变量i的地址存放到指针变量pointer_1中
      pointer_2=&j; //将变量j的地址存放到指针变量pointer_2中

      3、引用指针变量:

      (1)如果已执行了“pointer_1=&a;”语句,请问&*pointer_1的含义是什么?“&”和“*”两个运算符的优先级别相同,但按自右至左方向结合,因此先进行*pointer_1的运算,它就是变量a,再执行&运
    算。因此,&*pointer_1与&a相同,即变量a的地址。
      如果有pointer_2=&*pointer_1;它的作用是将&a(a的地址)赋给pointer_2,如果pointer_2原来指向b,经过重新赋值后它已不再指向b了,而也指向了a。

      (2)*&a的含义是什么?先进行&a的运算,得a的地址,再进行*运算,即&a所指向的变量,*&a和*pointer_1的作用是一样的(假设已执行了“pointer_1=&a;”),它们等价于变量a。即*&a与a等价。

    #include <iostream>
    #include <windows.h>
    using namespace std;
    void main(){
    char c;
    int *num,*p;
    int a=10,b=20;
    num=&a;
    cout<<*num<<" "<<endl;
    cout<<*&b<<" "<<DWORD(&(*&b))<<" "<<DWORD(&b)<<endl;
    c=getchar();
    }







  • 相关阅读:
    [hdu1402]A * B Problem Plus(NTT)
    拦截导弹问题(Noip1999)
    删数问题(Noip1994)
    1217:棋盘问题
    随笔功能测试
    教师派8
    教师派7
    教师派6
    教师派5
    教室派4
  • 原文地址:https://www.cnblogs.com/lbangel/p/3177819.html
Copyright © 2011-2022 走看看