自学内容网 自学内容网

c语言之在函数中传递指针

c语言中定义一个函数,如果说是形参一个数组,这个数组在编译后会变成一个指针变量

比如下面的代码例子

#include<stdio.h>
void ff(char a[])
{
a[1]='r';
a[4]='r';
printf("%d\n",a);
}

int main()
{
char a[]="peogeam";
ff(a);
printf("%s\n",a);
printf("%d\n",a);
return 0;
}

在这个例子中,ff函数中的数组a[]经过编译后变成一个指针变量

在main函数中,定义一个数组a,在ff函数中引用a,a在编译后成为一个指针变量,指向第一个数组元素的地址,a[1]=*(a+1),a[4]=*(a+4)

函数传递数组一共四个情况

1.形参和实参都是数组名,就是上面的代码一样

2.实参数组名,形参指针

#include<stdio.h>
void ff(char *a)
{
a[1]='r';
a[4]='r';
printf("%d\n",a);
}

int main()
{
char a[]="peogeam";
ff(a);
printf("%s\n",a);
printf("%d\n",a);
return 0;
}

3.实参指针,形参数组名

#include<stdio.h>
void ff(char a[])
{
a[1]='r';
a[4]='r';
}

int main()
{
char a[]="peogeam";
char *p=a;
ff(p);
printf("%s\n",a);
return 0;
}

4.形参和实参都是指针名

#include<stdio.h>
void ff(char *a)
{
*(a+1)='r';
*(a+4)='r';
}

int main()
{
char a[]="peogeam";
char *p=a;
ff(p);
printf("%s\n",a);
return 0;
}


原文地址:https://blog.csdn.net/2301_81968528/article/details/136996975

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!