c++函数形参是指针和非指针的区别

2025-01-03 21:27:42
推荐回答(3个)
回答1:

是指针:把实参的地址值传给指针形式参数,函数内通过地址可以修改实参的值。
非指针:形式参数新定义一个变量,再把实参值赋值给形参,然后函数内可以使用该值,对新定义的形参的修改都不影响实参的值,因为他们是两个变量,互不影响。

回答2:

1.指针传递,就是把改变的地址传过去了,你在第一个函数里修改里地址里的内容,所以a改变了
2.值传递,值传递只是拷贝了一份,作为参数,不影响原来的值
add(c);bool add(int a)这里面就是
a=c;
然后对a改变,当然对c没有影响,
另外你第二个函数没有意义,你输出的c不一定是1,你在运行就可能是其他数,随机的,因为c没有初始化,望采纳

回答3:

形参为指针时传递的是地址,在那个地址上的值已经改变了,返回的是取那个地址上的值,所以相当于形参能把值传递回来。

而形参为非指针时,值是不能传回来的,因为实参和形参之间的值传递是单向的,只能从实参传向形参。