
正文
c语言地址传递和指针传递区别,c语言地址传递和指针传递区别是什么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言的传值和传址的区别
1、传递的变量值不同 两者其实传递的都是一个内存单元的内容。
2、传值调用,就是函数传递的参数只是值传递,实参把值传递给形参,形参运算后在把值返回。函数中改变的值是不能影响到外界的。
3、传值只是把其值传给副本,副本改变(比如交换)但原值不改变。传址是是把变量的地址传给地址变量,如果修改其变量所指的内容,原值就会改变。
4、要传递类型为A的值,如果参数类型是A*,那么为传地址,反之,如果参数类型是A,那么是传值。比如,要传递int型参数:1 传值:void func(int a);2 传地址:void func(int *a);而传递char *型参数。
5、用指针的话就是传址,其它的都是传值。传址的好处是可以使程序的时间使用率更高。实际上就是用空间换时间。
相关问答
Q1: C语言,指针,地址值的传递
1、c语言中指针即地址,地址的传值可以引起参数的变化。比如:&x, &y是取这两个变量的地址,他们的作用空间在main函数里。
2、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
3、区别:对形参的影响不同 在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。
4、值传递:指在调用函数时将变量的值传给函数。地址传递:指在调用函数时将变量的地址传给函数。指针:就是一个变量的地址。
Q2: C语言指针,指针变量函数传递为什么地址不一样?
行 和 10行 去掉 &, 输出指针直接用p就行。
在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
二级指针也是变量。既然问题中说“二级指针向被调函数传递了地址”,传址后被调函数改变了该变量的值,主函数中变量值自然也变。二级指针就是指向指针的指针,里面的值就是一个指针的地址。
p1与p2一定不一样,若输入时 ab,p==p1 若输入时 a=b,p是随机的。地址是无符号数,按%d打印出来,自然显示出正负。
怎么能一样呢,一个变量一个函数名是两个不同的单位存储在两个内存空间。
Q3: C++中函数的参数传递,引用传递和指针传递的别。哪种更有效率。_百度知...
一样。其实都是传地址,汇编写出来都是一样的 不过个人感觉哈,引用传递看着更加直白。
(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
上面的程序看起来象在玩文字游戏,没有体现出引用的价值。引用的主要功能是传递函数的参数和返回值。C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。以下是“值传递”的示例程序。
如果是指针方式传参数的话,在函数那里会为指针再创建一个副本。如果引用方式传的话,就不会创建副本。性能的差别就在这里吧。可能是因为你的形参是内置的数据类型对象或者比较简单的类对象。
Q4: C语言中什么是值传递和地址传递,什么是指针?要具体概念?
1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
2、也就是我们所说的引用,但引用只有C++中有,所以C语言都是值传递的。有些人有误解:认为C语言的int p=不也是按地址传递吗?其实不是这样的。
3、首先,指针是一种变量类型,它存储的是一个内存地址。也就是说,指针变量中存储的值是另一个变量的内存地址。在C语言中,指针变量必须先进行初始化,可以指向任何一种数据类型。
4、C语言中有两种传递方式,一个是值传递,另一个是地址(指针)传递。值传递就是单向传递。
5、并且用指针处理问题时,c语言通常会显得十分灵活,有位大家曾经说指针是c语言的灵魂。
Q5: C语言的函数调用中怎样判断是地址传递还是值传递?
同样是char *类型的参数,有可能是传值,也有可能是传地址。具体取决于函数实现功能。
如果参数类型为TYPE,那么就是按值传递。2 如果参数类型为TYPE *型,那么就是按地址传递。3 如果参数类型为TYPE*以上的指针,如TYPE**, TYPE***等,一样按照按地址传递处理。需要注意的是,TYPE本身可能为指针类型。
在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
函数只有两种传递方式:值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
关于c语言地址传递和指针传递区别和c语言地址传递和指针传递区别是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








