c语言在调用函数中改变数组,原数组改变吗

调用函数不是只能返回一个值吗

C语言不会复制整个数组,它会要求传入数组名(一个指向数组首地址的const指针),函数中对整数的改变其实就是对实际数组的改变!
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-08-16
是会改变的,返回值和他不是一件事情!

c语言在调用函数中改变数组,原数组改变吗
C语言不会复制整个数组,它会要求传入数组名(一个指向数组首地址的const指针),函数中对整数的改变其实就是对实际数组的改变!

c语言中调用函数如何返回多个值?
1、通过使用指针,在函数调用时,传递带有地址的参数,并使用指针更改其值;这样,修改后的值就会变成原始参数。2、通过使用指针返回结果为:3、通过使用结构:因为结构是用户定义的数据类型;可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。4、通过使用...

C语言被调函数与主调函数数值问题
值传递的意思是将你的参数的数值传递到调用的函数中(你的参数的值被复制了一份给了被调用的函数),所以才函数中怎么改变,都不会对原数值产生影响(打个比方,你抄袭了一篇文章,然后自己在那里改啊改的,但是原来的文章是没有动的)后边定义的a[10]传递过去了为什么改了呢,这个是因为他是个数组...

为什么c语言中,数组可以用void调用,既然没有返回值,为什么在主函数中...
是不会影响到实参的值的,要是按照地址调用(指针调用),是共享同一个存贮空间的,也就是改变的是同一个内存里面的内容,数组名的调用,就是指针调用的一种,int arr(int array[],int n){},你在函数里面改变array[]的值,

为什么被调函数中值已经交换但输出时还是主调函数中的顺序
在调用函数中是不能改变主函数里面的值的顺序的。这是C语言或相关语言的基本语言,调用函数中的数值的有效期只在本个函数里,等于说除了调用函数的范围,这些值就找不到了,所以不会改变主函数中的顺序。一般解决这种问题有两种方法:使用指针。将需要改变的值定义为指针类型,可以直接在调用函数中修改原...

C语言中,简单变量作为参数,调用函数数后,什么时候值改变,什么时候不变...
常规类型(int、double、float、char等)的都不会变 指针类型(int*、double*、float*,char*等)的都会变 数组类型(int[]、double[]、float[],char[])的也都会变 类也会变(c++范畴)总而言之:参数指向值的,都不会变;参数指向地址的都会变(数组也是指向地址的。可以理解为本质也是指针)

C语言:数组值无法改变
你用的是值传递,就是说你把主函数中数组的值赋给了被调用函数中,这个值就给了被调用函数中的另一个变量。当然你在被调用函数中是无法改变主函数中的数组的。你如果想要在被调用函数中改变主函数中数组的值,那么你要用地址传递,就是把你的主函数中数组的地址传给被调用函数,那么,被调用函数就...

c语言。用指针做实参、形参为什么会出现在被调函数中数组成功修改但主调...
copy_ptrs传参错了。看你这个函数是用尾元素地址的当前元素地址差值作为循环条件的。所以你这里形参变量rce表示的是最后一个元素的地址。所以实参应该是source+A-1。你写的是source+A造成循环数组越界了。另外,你main最后的打印用i做下标,但没给i赋值。要加一个for。下图加粗的就是改动的地方。

c语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的...
提供两个办法:1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。void fun(int a[],int n){ ...}\/\/其中a[]就是要输入的数组,n是这个数组的长度。void main(void){ int arry[10]={1,2,3,4,5,6,7,8,9,0};fun(arry,10);...} 2....

C语言中,数组名作为函数参数,属于什么传递,为什么?
属于地址传递,在函数里修改的话,将直接影响调用方的数值。这是因为数组名代表这个数组的首地址,不过是静态不可更改的而已。在函数里用引用[i]下标时,就是找到这个数组第i号元素的地址进行修改的。所以是第于是地址传递。

相似回答