1、传递的变量值不同
两者其实传递的都是一个内存单元的内容。不同的是,值传递的内容是一个变量的值,得到这个值后,对这个值得修改不能改变原变量的值;而地址传递的是一个变量的地址,得到传递的地址值后,可以通过这个地址直接访问地址对应的那个变量,进而修改那个变量的值。
2、传递的途径不同
值传递只是将变量的内容复制一份而已,函数进行操作的其实是另一个变量,只是另一个变量的值和传递的变。赋地址相当于间接操作就相当于知道了这间房子的具体位置去找里面的主人而赋值是直接去根据主人名字去找它。
3、传递的函数不同
赋地址inta=10,b;给变量赋值就是b=a;但是赋地址就不行因为地址只能赋给指针变量应在上面基础上加char*p;把a的地址给p就是p=&a;地址只能存在指针变量中变量赋值,是可以给变量赋一个相同类型的任意的数据,而变量的地址是系统在内存随机分配的,不能更改。并且只有指针变量才能赋地址值。
给变量赋地址这个变量要为指针变量int*p,b;*p=&b;给变量赋值只要类型相同就行。其实都是一样,都是给一个数据,地址也是一个数值而已给变量赋值是复制一个数如:inta=1b;b=a;则变量b被赋值为a的值,但是赋地址得用指针,因为指针的定义就是地址的意思。