龙空技术网

C语言-指针指向地址的两种表达

肌肉诗男 487

前言:

现时咱们对“c语言把地址给指针”大致比较关怀,看官们都需要分析一些“c语言把地址给指针”的相关资讯。那么小编同时在网上收集了一些对于“c语言把地址给指针””的相关知识,希望同学们能喜欢,小伙伴们快快来学习一下吧!

①引子

众所周知

p=&x,表示地址

*p=x,表示值

但是

我们常常看见*p=&x

难道值=地址?

当然不等

前面还有个类型名int

int *p=&x就是p=&x

可以理解为int *(p=&x)

本质是

int *p=int *&x=int x=x,表示值。

②p=&x,表示地址

#include< studio.h>

viod fun(int*a,int*b)

{

int w;

*a=*a+*a;/*a的值翻倍*/

w=*a;*a=*b;*b=w;/*交换ab的值*/

}

main()

{int x=2,y=3;

p=&x;q=&y;

/*用分号隔开了,前面没有int,表地址*/

fun(p,q);

printf("%d,%d\n",x,y);

}

计算结果

x=2x=4,y=3

再交换得x=3,y=4

③int *p=&x,也表示地址

#include< studio.h>

viod fun(int*a,int*b)

{

int w;

*a=*a+*a;/*a的值翻倍*/

w=*a;*a=*b;*b=w;/*交换ab的值*/

}

main()

{int x=2,y=3,*p=&x;*q=&y;

/*用逗隔开,前面有int,也表地址*/

fun(p,q);

printf("%d,%d\n",x,y);

}

计算结果

x=2x=4,y=3

再交换得x=3,y=4

标签: #c语言把地址给指针