C语言选择题:当数组名作为函数参数时,传递给被调函数的是,c语言数组作为函数返回值

文章 2年前 (2021) admin
0

Q1:C语言中数组名作为实参传给被调用的函数时,形参获得的是什么

在函数中,之所以可以修改数组的值,是因为参数获取的是数组的地址,而不是数据,所以row参数应该获取数组的地址1

Q2:在C语言中,用数组名作为函数调用时的实参,实际上传递给形参的是____________2

在C语言中,当调用函数时,数组名被用作实际的参数,但是第一个地址实际上被传递给了参数3因为数组名传达了数组的地址,也就是第一个元素的地址4比如数组a[3],3指数字,a[0]指第一个元素,所有元素指A[0]~ A[2];数组名指定第一个地址5扩展数据C语言传递函数参数有三种方式:16传递值意味着将变量的值转换成函数的形式参数7实际上,变量的值是用来生成一个新的形式参数的,所以函数中形式参数的变化不会影响函数外变量的值82.地址传递是指将变量的地址赋给函数中形式参数的指针,使指针指向实变量的地址,因为指针所指向的地址内容的变化可以反映在函数外部,即函数外部变量的值可以改变93.传递引用实际上是通过指针来实现的,可以达到地址传递等使用效果,但是值传递等使用方法10一些建议:如果你传递值,它会生成一个新的对象,这将占用时间和空间http://redoufu.com/。当你退出函数时,它会破坏对象,这需要时间和空间12

Q3:c语言,用数组名作为函数调用时的实参,传递给形参的是什么?

c语言中,使用数组名作为函数调用的参数,传递的参数是数组头地址的值,也就是指针13

Q4:数组名作为实参数传递给函数时,数组名被处理为()14

当数组名作为实参数传递给函数时,数组名被视为数组的第一个地址15在C语言中,数组属于构造数据类型16一个数组可以分解成多个数组元素,可以是基本数据类型,也可以是构造类型17因此,根据数组元素的类型,数组可以分为数字数组、字符数组、指针数组、结构数组等各种类别18关于变长数组的问题(VLA):原来C89标准不允许出现变长数组,但是在C99标准中增加了对VLA的支持,但是支持的编译器并不多,而且因为栈溢出的安全问题,也没有多少人敢用这个变长数组,所以在C11标准中定义为可选函数19扩展数据:使用规则120您只能为某些元素指定初始值21当{}中的值的数量小于元素的数量时,只有前面的元素被赋值22示例:static int a [10]={0,1,2,3,4 };意思是只有五个元素A [0] ~ A [4]赋值,然后五个元素自动赋值为0232.只能一个一个地给元素赋值,而不能给整个数组赋值24例如,如果十个元素都赋值为1,则只能写成:static int a [10]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 };并且不能写成:static int a[10]=1;(请注意,这在C和C#语言中是正确的,但并不是在所有涉及数组的地方都是正确的25数据库从1开始26) 3.如果没有为可初始化数组分配初始值,所有元素都是零值274.如果所有元素都被赋值,数组描述中可能不会给出数组元素的数量28例如:static int a [5]={1,2,3,4,5 };可以写成:static int a []={1,2,3,4,5 };动态赋值可以在程序执行过程中为数组动态赋值29此时,您可以使用循环语句和scanf函数逐个为数组元素赋值30

Q5:C语言中,数组名作为函数调用的实参时,下面叙述正确的是()31

正确的B例如:f(int data[]);f(int *数据);其实是等价的32都是指针转移33以上两种方法都可以传递数组名作为参数34参数传递的数组名称是数组的第一个地址35因此,传递数组名称实际上是将数组的第一个地址赋予参数,因此可以通过地址来更改参数数组的相应值36

Q6:C语言中,数组名作为函数参数,属于什么传递,为什么?

地址传递函数的修改直接影响调用数值37数组名称代表数组第一个地址的静态变化38该函数使用引用[i]来查找数组第I个元素的地址,以修改第一次地址传输39

相关文章