C指针

main(){

  int a = 2 , b =0;

       

      // 声明指针变量

       int *pa , *pb;

     

      //为指针变量赋予指针

       pa = &a;

       pb = &b

     

      //通过指针变量访问变量 

       b = *pa;

     

     // 将b的值赋予a,此时*pa等同于a,*pb等同于b ,可以理解是变量的不同表达形式。变量由名字和地址组成,得到地址等于得到变量本,可以傲娇的说,其他的都不重要,我只要地址。

      *pa = *pb

      printf( *pa == a)

} 

 

指针变量用于存放指针;

指针是变量的地址;

变量通过地址存取值,则可以任务变量包含地址,变量由地址构成,通过取地址运算符可以取到变量的地址;

间接访问运算符*,作用于指针变量,可以获取变量。

等于说通过变量来访问存储在内存上的数据,是直接访问。通过指针变量+间接访问运算符访问变量,是间接访问。

亦即 a = *pa 。等于说指针变量可以指向真正的变量本体。

指针的用图:

        在函数中修改实参的值,函数接收实参的指针变量。

                当向函数传参时,如果想在函数内部改变传给形参的实参值,在函数内部是做不到的,因为调用函数传给函数的实参是副本,副本的地址和本体不一样,不能通过副本修改本体。

               此种应用场景下,就可以打破函数的限制,即单向传值的限制。实参能向形参传值,在函数中不能改变实参值的限制。

        

原文地址:https://www.cnblogs.com/hengwu/p/9522083.html