在c语言中给一个变量赋值与赋地址的区别

如题所述

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的值,但是赋地址得用指针,因为指针的定义就是地址的意思。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-30
1、就是传值和传地址的区别:两者其实传递的都是一个内存单元的内容。不同的是,值传递传递的内容是一个变量的值,得到这个值后,对这个值得修改不能改变原变量的值;而地址传递传递的是一个变量的地址,得到传递的地址值后,可以通过这个地址直接访问地址对应的那个变量,进而修改那个变量的值。

2、值传递只是将变量的内容复制一份而已,函数进行操作的其实是另一个变量,只是另一个变量的值和传递的变量值是相同的。而地址传递是直接把变量的地址传递给函数,这时函数是直接对原来的变量进行操作的。所以值会变化。举例:值传递就相当于克隆了一个同样的变量,操作的是克隆出来的那个,原来的变量没有变化,但是地址传递是直接对原来的变量进行操作,没有克隆新的变量。本回答被网友采纳
第2个回答  2011-03-22
给变量赋值是复制一个数如:int a=1,b;
b=a;
则变量b被赋值为a的值,但是赋地址得用指针,因为指针的定义就是地址的意思!!希望能够符合你的回答!!
第3个回答  2015-09-24
变量赋值,是你可以可以给变量赋一个相同类型的任意的数据,而变量的地址是系统在内存随机分配的,我们不能更改。并且只有指针变量才能赋地址值。
第4个回答  2011-03-22
int a=10,b;
给变量赋值就是b=a;
但是赋地址就不行 因为地址只能赋给指针变量应在上面基础上加char *p;
把a的地址给p就是p=&a;
地址只能存在指针变量中