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)!