#include <stdio.h> void print(int a) { (a)++; printf("a=%d\n",a); } int main(void) { int b = 6; print(b); printf("%d\n" ,b); return 1; } //这种情况下就属于值传递,因为作用域和内存模型的原因,生命周期消亡,数据消失,故最后数据不变。
#include <stdio.h> void print(int * a) { (*a)++; printf("a=%d\n",*a); } int main(void) { int b = 6; print(&b); printf("%d\n" ,b); return 1; } //这种情况下属于地址传递,地址传递会改变值。
原文地址:http://blog.csdn.net/u012516914/article/details/43604557