c语言形参是指针
A. 关于c语言 当实参是数组名 形参是指针变量时
在C语言,数组无论作为参数还是返回值,都是以指针形式返回或者传递的。在数组中,数组名字代表的是数组第1个元素的地址。比如如下数组。
int
a[10]
=
{1,2,3,4,5,6};
数组名a,实际上相当于&a[0]。所以,当实参是数组名,形参是指针变量时,只要保证数据类型一致即可传递。如下面的示例代码:
#include <stdio.h>
void f(int *p, int size) {
for (int inx=0; inx!=size; ++inx) printf("%d\t",p[inx]);
printf("\n");
}
int main()
{
int a[4] = {1,2,3,4};
f(a,4);
return 0;
}
B. C语言问题 函数中形参若为指针,则调用时对应位置上的实参不能是()
不能是
简单变量,因为
它不是地址。
语法规则而已。
形参若为指针,实参必须是
指针变量,或
数组名,或
简单变量的地址。
数组名
就是数组的首地址,是地址
简单变量的地址
是地址
形参若为指针,实参是
指针变量,这是一一对应,天经地义。
C. c语言函数的形参为指针变量时,对应的实参可以是数组名。怎么理解呀
举例:
void f(int *p)
{
}
int arr[]={1,2,3};
因为函数f的形参是一个类型为int的指针变量,所以调用f时,可以将数组名arr作为实参传给形参p。即可以这样调用:f(arr);
D. c语言形参是指针的情况
你要记住。当实参是数组名元素的时候,形参是用指针接收的。所以*ss实质是指针,存放的是tt的地址。只不过*ss可以写成数组的形式:ss[i]。这样就好理解了:*p=ss ,重新定义一个指针p,指向的也是tt的首地址
E. C语言中当形参是指针,实参是什么当实参是指针,形参是什么为什么
第一个问题:
形参是指针,实参就应该是对应数据类型的地址。
例如:
swap(int *x,int *y)
{
int t ;
t = *x;
*x = *y;
*y = t;
}
int main()
{
int a = 2,b=6;
swap(&a,&b);
//因为swap函数的形参是int类型的指针,所以传入的实参应该是int类型变量的地址
return 0;
}
第二个问题:
当实参是指针的时候,形参应该是什么?
其实很简单,你只要把
第一问列出来 ①实参:地址 ②形参 :指针
一一对应出来 ①实参:指针 ②形参:指针的指针
因为你要在局部函数中改变实参,就需要传递它的地址,指针也是如此,把它类比为int型变量就好了。
个人理解,希望能帮到你,如有不对,欢迎指正