我对传址调用的格式一只很迷茫。。。。。写的一团糟,麻烦详细讲解一下,或者做一下这个题作为例子:1)请使用数组元素存取方式,设计实现一个函数可以将任意字符数组元素存放位置逆转的程序。2)请使用指针存取方式完成第一题。为了方便我就把我写的贴上来。。虽然一大堆错误。。。。
#include <stdio.h>
int main()
{
void nizhuan(char []);
int i,j,n;
char a[100];
printf("请输入字符串,以结束:");
for(i=0;a[i]!='@';i++)
scanf("%c",&a[i]);
nizhuan(a);
}
void nizhuan(char a[])
{
int i,j,n;
char t;
for(i=0;;i++)
if(a[i]='@')
break;
i--;
n=(i+1)/2;
for(j=0;j<n;j++,i--)
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
åªéè¦å°å符æ°ç»çååæ°æ®è¿è¡äº¤æ¢å°±è¡äºã
非常感谢!!那么能否讲解一下传址调用的格式??有些迷茫。。。
追答你这个就属于地址调用的一种,你传的是字符串,其实传进去就是字符指针。
所谓地址调用,就是这个样子:
void SetA(int* pa)
{
*pa=5; //这边pa是一个指针,要使用pa指向的值或者要改变pa指向的值就要用*pa;
pa[0]=5; //这一句和上一句是等价的。
}
int main()
{
int a=4;
SetA(&a); //传进去的是你想改变的变量的地址,或者是数组的某一个指针。
printf("%d\n",a); // a=5
}