#include "stdafx.h"
#include
void fun(char *p)
{
//printf("%c",p);
while(*p!='E')
{
printf("%c\n",p);
p++;
}
}
int main(int argc, char* argv[])
{
char p[5]={'A','B','C','D','E'};
fun(p);
printf("%c",p);
return 0;
}
为什么这个输出是
@
A
B
C
@
'@'从哪里来的
@ 是非法的,已经出了你的可用内存了;指针已经非法了。什么都可能是;每次出的结果可能不一样。
@是A的ascii码-1(64)
printf("%c",p); 这个错了。
应该是 printf("%c", *p );
你对 char 和 char * 的理解不对,再学习一下指针
你的程序没法编译,修改下
#include<stdio.h> //这个头文件
void fun(char *p)
{
//printf("%c",p);
while(*p!='E')
{
printf("%c\n",*p); //修改
p++;
}
}
int main(int argc, char* argv[])
{
char p[5]={'A','B','C','D','E'};
fun(p);
printf("%c",*p); //修改
return 0;
}
结果正确