c的传值方式

c中所有传递给函数的参数都是通过传值进行。函数获得的是实参的一份拷贝。指针,数组也如此。

1 #include<stdio.h>
2
3 void show_addr(int *p)
4 {
5 printf("p2_addr:%x\tp2_content:%x\n",&p,p);
6 }
7
8 int main()
9 {
10 int *pt, i = 2;
11 pt = &i;
12 show_addr(pt);
13 printf("p1_addr:%x\tp1_content:%x\n",&pt,pt);
14 }

输出结果:

p2_addr: bfd2e030    p2_content: bfd2e048
p1_addr: bfd2e04c    p1_content: bfd2e048

可以看到,形参和实参里面存放的值相同。而存放他们值的地址不同.所以可以看出,当传递一个指针参数的时候,传递的是一份拷贝。

posted @ 2011-05-17 11:31  zendPger  Views(159)  Comments(0Edit  收藏  举报