首页 > 软件 > C语言值传递问题

C语言值传递问题

软件 2024-07-25

c语言中的值传递是怎么回事?

实参的值传给了形参,形参可以看着是被调函数中的局部变量被调函数可有返回值也可以没有有返回值用return返回。例如int fun(int a,int b){ int c; c=a+b; return c;}主函数调用:int a,b,c;a=1,b=2;c=fun(a,b);没有返回值的函数通常形参都是指针变量,那样可以直接改变变量的值,例如fun(int *a){ *a=5;}主函数调用int b=1;fun(&b);这里调用fun后,b的值就变为5了而如果你的函数是fun(int a)这样b的值是不会变化的,这要你去理解指针

c语言函数的值传递

p函数就是个冒泡递减排序功能。标准函数头写法应该是void p(int a[])而不是void p(int a[5]),即使写成void p(int a[5]),编译器也是按void p(int a[])解释而不按void p(int a[5])解释,而且这里a[]的意思就是定义a是int *型指针。函数p中并没有改变a,改变的是a指向的目标a[0]~a[4]。所以不知你问的具体是啥意思……

关于C语言函数值传递

切 这个例子是为了让你理解函数传递到底是什么。(c当中的函数参数传递一直是值传递,别被指针迷惑了) 指针也只是一个变量而已。 因为你传的是该指针,用的也是该指针。函数传递参数是值传递。 也就是拷贝了一份pt的值进去。 并未对pt本身做任何的操作。 所以pt还是那个pt。

C语言中 指针变量值传递的问题

这要看你返回的指针指向的是不是局部变量,你的问题很可以是返回的是一个局部变量的指针。当那个函数返回时,内存被回收,在主函数里打印时,是因为那块内在没被别的函数覆盖,当你再调用别人函数的时候,那个地址的内容已经改变。这就是你的错误原因。

c语言值传递与地址传递问题

值传递:不管怎么传,原来的实参的值都不会改变。 地址传递,原来的实参的值可能被改变。 打个比方: 值传递就好象你告诉别人你的帐户里有多少钱 帐户里的钱不会改变。 地址传递就好象你告诉别人你的帐户密码 帐户里面的钱可以被改变。 #include point(char *pt) main() {char b[4]={'m','n','o','p'},*pt=b; point(pt); printf("%c\n",*pt); } point(char *p) {p+=3; *p='F';}//加上这一句就变了 你这种传递是地址传递没错,形参p的值等于实参pt的值,但是你在调用函数里

标签:CC++ 信息技术 编程 C(编程语言) 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18