关于指针的问题!
#include<STDIO.H>void S(int * x,int * y)
{
intz;
z=*x;*x=*y;*y=z; //x和y指针变量 指向的是地址为什么可以给整型z赋值呢
}
int main()
{
int a=5,b=1;
S(&a,&b);
printf("a=%d,b=%d\n",a,b);
return 0;
}
z=*x;*x=*y;*y=z; //x和y指针变量 指向的是地址为什么可以给整型z赋值呢
额,x和y是指针变量,它们的值是一个地址,而指向却是值。
a=5,&a是取a的地址,假设是0x12345678,传给形参x,x就等于0x12345678,那么*x是指的是这个地址0x12345678上的值,当然就是5,所以z=*x,不是把地址赋给z,而是把int类型的5赋值给int类型的z *表示取值
也可以表示某块内存的寻找 像这种问题,最简单就是看AT&T 汇编,当然,不看也没啥问题::big
movl %edx, %eax
movl (%edx), %eax
页:
[1]