指针

来源:互联网 发布:android实现java线程池 编辑:程序博客网 时间:2024/04/25 17:17

值传递 地址传递  引用传值


值传递:隐含的把实参的值赋给形参


地址传值:
main()
{
   int a= 1; int b =2;
    Exchang(&a,&b);
}
    Exchang(int *x,int *y)
隐含把a b 的地址传给x y,x=&a,y=&b<=>对a b变量本身的操作


引用传值:

main()

{
    int a =4;int b=6;
    Change(a,b);
}
   Change(int &x,int &y);
x y 分别引用a,b变量

 

int main(int argc,char *argv[]){

   int a = 25;
   printf("a:%d\n",&a);
   int *p;
   p = &a;//p是存的a的地址
   int **pi;
   pi = &p;//pi存放p的地址

   printf("p:%d\n",p);//a的地址
   printf("&p:%d\n",&p);//p的地址 
   printf("*p:%d\n",*p);// 对p解引用,到p指针指向的这个地址去取值
   printf("pi:%d\n",pi);//存放p的地址    =&p
   printf("&pi:%d\n",&pi);//pi的地址
   printf("*pi:%d\n",*pi);//到pi指针指向的这个地址去取值  =p
   printf("**pi:%d\n",**pi);//
   getchar();
}
*p是对p解引用
*p  是p指针所指地址的内容; p指向内存编号的地址

 

结果: