zoukankan      html  css  js  c++  java
  • C 语言指针

    指针究竟是什么呢?

    指针是一个指针为地址的变量正如char类型的变量用字符作为其数值,而Int类型变量的数值是整数,指针变量的数值表示是地址

    如果将某指针变量命名为pas,那么就可以获得一下语句:

    pas=&passwd 

    这里是把passwd的地址赋值给pas

     指针需要的符号:*  &

    地址运算符(&):后跟一个变量名,&给出变量的地址

    例如:

    &num 表示变量num的地址

    间接运算符(*):这里先说一下这里不表示*二元运算的*(乘法),当后面跟一个指针名或地址时,*给出存储在被指向地址中的数值

    例如:

    num=2;

    pas=#//pas指向num的指针

    vps=*pas;//将pas指向的值赋给vps

    上面的语句是将2赋值给vps

    指针声明:

    int *pi ; //pi是一个指向整数变量的指针

    char *p; //p是一个指向字符变量的指针

    float *p,*g;//p和g都是指向浮点 变量的指针

    总结:类型标识符表明了被指向变量的类型,而星号(*)是表示变量为指针

             声明Int * pi;的意思是pi是一个指针,而*pi是int类型的

    接下来写一段代码看看效果

    #include<stdio.h>
    void chang(int *p ,int *q);//声明指针
    int main(void){
    int x=5,y=15;
    printf("x=%d y=%d
    ",x,y);//这是普通的输出
    chang(&x,&y); //函数传递的是x和y的地址而不是它的值,这就意味着chang函数原型声明中形参q,p将使用地址作为它们的值,因此,它们应该声明为指针。所以有之前的声明
    printf("x1=%d y1=%d
    ",x,y);
    renturn 0;
    }
    void chang(int *p,int *q){
    int temp;
    temp=*p;
    *p=*q;
    *q=temp;
    }
    /*
    在函数交换时,首先函数使用x和y进行交换,使它可以访问x,y变量,通过指针和运算符* ,函数可以获得相应存储地址的数据,从而就可以改变这些数据,
    
    */

    运行结果:

  • 相关阅读:
    微服务架构
    微服务架构
    Java语言编程
    Java语言编程
    Java语言编程
    《自己动手写云盘》 – 确立需求
    树上差分
    线性基
    BM(Berlekamp-Massey)算法
    FFT/FWT
  • 原文地址:https://www.cnblogs.com/X404/p/12078062.html
Copyright © 2011-2022 走看看