#include "stdio.h"
#include "string.h"
void main(){
int x,i;char a[33];
void trans10_2(char a[],int n);
printf("please input a data: ");
scanf("%d",&x);
trans10_2(&a[0], x);/*为什么不能写成a[]*/
/*实参,不允许这样传递参数 a[] 形参接收允许*/
/*for(i=strlen(a)-1;i>=0;i--)
printf("%c",*(a+i));/*此段循环语句为何不能放在trans10_2函数中所示的错误位置,
若放置所示位置,语法无错,但不会显示输出,请高手解释下哈*/
}
void trans10_2(char a[],int n)
{
char *str=a;
/* 把传递的参数,赋值给另一个指针*/
int r,i;
/* 再定义一个局部变量i
因局部变量只在本函数内有效*/
while(n>0)
{
r=n%2;
*a=r+48;
n=n/2;
a++;
}
*a='\0';
/*错误的位置*/
for(i=strlen(str)-1;i>=0;i--)
/* 原未定义新指针时,数组下标已指向最后的位置
i 起始值为 -1 条件不成立*/
printf("%c",*(str+i));
}