写一个函数把整形转换为字符型,在调用的时候用到指针,输出的是乱码,为什么呢

/*编写函数实现整数到字符串的转换*/#include<stdio.h>#include<math.h>voiditos(inti,chars[10]){intj=0,k... /*编写函数实现整数到字符串的转换*/
#include<stdio.h>
#include<math.h>
void itos(int i,char s[10])
{
int j=0,k,x=i,y;

while(i!=0)
{
i=i/10;
j++;
}

for(k=j-1;k>=0;k--)
{

y=x%10;
x/=10;
s[k]=y+'0';
}

}
void main()
{
int i,j;char s[10]={'0'};
char *p;
p=s;

printf("输入一个整数:\n");
scanf("%d",&i);

itos(i,p);

for(j=0;j<10;j++)
printf("%c",p++);
展开
 我来答
百度网友3c9c8ec
2014-05-03
知道答主
回答量:10
采纳率:0%
帮助的人:14万
展开全部
最后输出的应该是*p++吧,p++表示的不还是地址么?

不太了解你的程序的具体作用,整数到字符串?... 在最后 printf("%c",p++); 改成 printf("%c\n",*p++); 你就能看出来已经是字符串了,要不和前面的输入没有可以看到的区别。

还有,最后主函数别忘了大括号。
追问
这次对了,谢谢,可是为什么呢?
追答
p是指针,*p是指针所指向的字符串or数组元素,而你要输出的当然是指针指向的东西,不会是输出地址值的。    而加\n只是为了让每次输出有空隙,要不黏在一块,看起来像没做过处理似的...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式