-
2017-04-07 19:40:37
1.实参数组名代表一个固定的地址,或者说是指针型常量,因此要改变其值是不可能的。
例如:a++; //语法错误,a是常量,不能改变
2.形参数组名是指针变量,并不是一个固定的地址值,它的值是可以改变的。
例如: f(array[ ],int n)
{
cout<<array;
array=array+3;
cout<<*array<<endl;
}
要真正明白为何上述程序是正确的,那么要先明确:C++编译系统将形参数组名一律作为指针变量来处理!
例如:void select_sort(int array[ ],int n)
在编译时被解释为:void select_sort(int *array,int n)
这个时候应该可以理解:实参数组名是一个地址值,而形参数组名被编译器解释为一个指针变量。
更多相关内容 -
Java 形参数组的值在方法中被修改,实参数组的值也会改变
2020-03-02 20:15:28为什么Java中一旦作为形参的数组的值在方法中被修改,即使没被返回,实参数组的值也会改变?解答。。。
1. 问题
- 为什么 Java 中一旦作为形参的数组的值在方法中被修改,即使没被返回,其实参数组的值也会改变?
2. 解答
- 在方法中,数组作为参数传递时传递的只是数组在内存中的地址值(即引用值),而不是将数组的元素直接传给形参;
- 这样的引用传递使方法的形参和实参同时指向数组在内存中的位置,所以无论是通过形参还是实参修改数组,内存中的数组的值都会发生改变;
- 这跟除了 String 外的所有引用数据类型相似,需要注意的是 Java 中只有值的传递而没有引用传递,具体的可以看我另一篇博文:Java 中字符串可以被方法引用传递吗;
-
实参数组和形参数组在存储空间上完全重合
2014-03-28 17:07:25因为数组名实质上是常指针,即便它作为参数,它指向地址是不会改变的(传参的时候实际上是临时拷贝了一份指针,但是指向的地址不变),所以就共占一段内存单元(指针指向的那块内存)。 追问 所以这个是双向传递... -
用sizeof()测实参数组名与形参数组名的大小
2012-07-20 19:34:50程序如下: #include char a[10];...从而说明:如果用sizeof()测实参数组的数组名,则得到的是整个数组的大小或长度,而用sizeof()测形参数组名则得到的是形参被作为指针处理时指针类型的大小。程序如下:
#include<stdio.h>
char a[10];
int size(char ch[]);
void main()
{
int m,n;
m=sizeof(a);
printf("m=%d\n",m);
n=size(a);
printf("n=%d\n",n);
}
int size(char ch[])
{
int i;
i=sizeof(ch);
return(i);
}
结果显示:m=10
n=2
从而说明:如果用sizeof()测实参数组的数组名,则得到的是整个数组的大小或长度,而用sizeof()测形参数组名则得到的是形参被作为指针处理时指针类型的大小。 -
易懂的数组作为函数参数(C语言)
2020-05-17 10:50:55目录易懂的数组作为函数参数(C语言)1、数组做函数参数2、通过形参数组修改数组元素3、数组排序 1、数组做函数参数 (1)、若将一个数组作为实际参数传递给函数,只需不带方括号的数组名即可 若数组a的定义为:int ... -
数组作为函数参数
2019-08-22 21:39:13Ⅲ 在定义average函数时,声明数组的大小为10,但在实际上,指定其大小是不起任何作用的,因为C语言编译系统并不检查形参数组大小,只是将实参数组的首元素的地址传给形参数组名。因此,形参数组名获得了实参数组的... -
C&C++笔试小结
2019-09-13 21:53:46B 实参数组类型与形参数组类型可以不匹配 C 在被调用函数中,不需要考虑形参数组的大小 D 实参数组名与形参数组名必须一致 A选项:必须在主调函数中说明此数组的大小,不一定例如传递一个char类型的字符串,就... -
【C 语言】数组元素和数组名作为函数参数
2021-05-20 04:11:16数组用作函数参数有两种形式:一种是把数组元素(下标变量)作为实参使用;一种是把数组名作为函数的形参和实参使用。1、数组元素(下标变量)作为实参使用数组元素作为函数实参使用与普通变量是完全相同的,在发生函数... -
数组作为函数参数使用,改变实参
2019-11-23 11:22:23//把数组作为函数的参数时,这个函数中可以修改这个数组的值 Bonus_points(achievement,3,10); cout “原数组”[2]; Bchievementprint(achievement, 3); system(“pause”); return 0; } -
python函数传递数组参数吗
2020-12-16 11:41:59Python中函数的参数,可以分为以下几类:位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。实参和形参数量... -
vba 数组 数组参数
2019-08-10 18:00:37关于赋值 我看了很多本书都没有看到这样子的,包括官方文档,所以我就写了下来。 sub a() dim a() dim c() ...a = array(1,2,3,4) '这里a后面的()可以给也可以不给 ...sub a(paramarray a() as variant) 'paramarray... -
C 语言中关于通过形参传递数组的长度计算的一些思考
2019-11-21 17:57:05a[] 是长度计算的形式参数,在 main() 函数中调用时,a 是一个指向数组第一个元素的指针。在执行 main() 函数时,不知道 a 所表示的地址有多大的数据存储空间,只是告诉函数:一个数据存储空间首地址。 sizeof a ... -
用数组名作函数参数
2019-05-31 18:46:10实参数组与形参数组类型应一致(现都为int型),如不一致,结果将出错。 (2) 需要特别说明的是: 数组名代表数组首元素的地址,并不代表数组中的全部元素。因此用数组名作函数实参时,不是把实参数组的值传递给形参,而只是... -
看完这篇文章一定弄懂C语言数组作为函数参数的用法
2021-02-23 15:37:10C语言数组作为函数参数 文章目录一:数组元素作为函数的实参二:数组名作为函数的实参关于数组作为函数参数调用的讨论关于函数定义的参数表的讨论获取二维数组的行和列更高维...换句话说,对数组元素的处理是按普通变 -
【C++】当函数的形参为数组时,函数对实参的修改有效,不用专门return来帮助我们修改实参
2019-06-05 21:31:46而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值,我们不需要return #include using ... -
线性代数带参数的线性方程组的求法示例详解
2021-08-17 12:24:59线性方程组的求法与示例详解 线性方程组 由n个1维未知量,m个方程组成的组合叫做线性方程组。 特别的当方程组右边的值全都是0时叫做齐次线性方程组。 增广矩阵 在系数矩阵的右边添上一列,该列由线性方程组... -
C语言中数组作为参数传递
2018-11-24 14:06:24数组可以由整个数组当作函数的参数,也可以由数组中的某个元素当作函数的参数: 1、整个数组当作函数参数,即把数组名称传入函数中,例如: 2、数组中的元素当作函数参数,即把数组中的参数传入函数... -
C语言数组作为函数参数
2019-02-24 20:24:59三:二维数组名作为函数参数 第一维的大小可以不指定,第二维的大小必须指定。实参传送的是二维数组的首地址,使得二维数组a与b共用同一存储单元,即a[0][0]与b[0][0]共用同一存储单元,a[0][1]与b[0][1]共用同一... -
函数的参数和函数调用
2015-03-14 16:07:061 函数的参数 在调用函数时,大多数情况下主调函数和被调函数之间存在着数据传递关系。于是就用到了形式参数和实际参数,简称形参和实参。在定义函数时函数名后面括号中的变量称为“形参”,在主调函数(一般为... -
C语言中用数组名作为参数能改变实参数组的值的理解
2013-05-25 23:35:04把实参数组传递给函数,则形参从数组哪里得到了其实地址,因此数组与实参数组共占了同一段内存单元,在函数调用期间,该变了形参数组的值,也就改变了实参数组的值。 现在问题来了,怎么理解共占同一段内存单元和... -
C语言函数传数组地址参数
2018-12-20 17:08:56main()函数里写成ReadReg(Addr + i, buf[i]); 出错。 buf[i]前需加取地址符& #include "stdio.h" int i; int Addr;...ReadReg()函数的第一个参数Addr的值,第二个参数传数组buf的地址。 -
数组名作为函数参数
2018-05-13 12:55:461.数组名作为函数参数数组名做函数参数时并不是单纯的把数组内部的值传递给形参数组,而是把该数组首元素的地址传递给形参数组,也就是说将实参数组的地址分享给了形参数组,这样就实现了一个地址两方调用。... -
c++函数输入参数为数组时怎么求长度
2019-10-27 14:25:21如果你只想知道答案: 静态数组,如果在函数里定义一个静态数组A,则在此...动态数组,(1)用new创建的动态数组作参数时,在函数里同样也不能求长度,因此一般我们也会再多传入一个参数记录长度。 (2)参数为vec... -
如果改变了形参数组的值 从而在调用函数期间 形参数组就和实参数组共占同一段内存单元 为什么形参数组从实...
2008-10-20 09:17:00有问题再问我吧 数组变量 不知道能不能理解 使用它的话 实际上就是一个指针 传址调用 比如 里面保存的是一个地址 我的本子 我的一个本子上 也就是通过地址来找到里面的实际存储的数量 数组作为函数参数 按本子上的... -
形参中的数组
2018-11-07 14:57:51形参中的数组 数组在形参中有3种不同的表达方式 #include <stdio.h> //1、形参中的数组,不是数组...//3、形参中的数组和非形参数组区别:形参中的数组时指针变量,非形参数组就是数组 //void print... -
函数形参定义为数组怎么弄
2016-10-20 11:36:03求大神,实参只能是一个数,怎么能简写,用一个数组代替很多数呢? 举个例子,如何在函数参数里边输入两个n维向量? -
将数组作为参数,调用该函数时候给的是数组地址还是整个数组
2018-07-02 11:15:041、在实际的应用中,数组经常作为函数参数,将数组中的数据传递到另外一个函数中,一般来说,传递可以采用两种方法:1>、数组元素作为函数的实参时,用法跟普通变量作参数相同,将数组元素的值传递给形参时... -
C++中函数的数组形参
2018-09-08 22:13:18函数由函数名以及一组操作数类型唯一的表示。函数的操作数,也即形参(parameter),在一对圆括号中声明,形参与形参之间以逗号分隔。 void swap(int a, int b) { int temp = a; a = b; b = temp; } 在以上... -
用数组名作函数参数,此时形参与实参都用数组名
2015-04-23 23:02:33而用数组名作函数的参数时,如果改变了形参数组元素的值将同时改变实参数组元素的值。在程序设计中往往有意识的利用这一点改变实参数组的值。 d、实际上,声明形参并不意味着真正建立一个包含若干元素的数组,...
收藏数
187,642
精华内容
75,056