以下代码的输出为512 0 2但是它应该是512 0 0.有人可以帮忙!
#include<stdio.h>
int main()
{
union a
{
int i;
char ch[2];
};
union a z = { 512 };
printf("%d %d %d\n",z.i, z.ch[0], z.ch[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我试图创建我的函数版本gets()并puts()了解它们.我正确编写的程序显示字符串,但也显示一些垃圾字符.
为什么会这样?
/* xgets and xputs function */
/*Author : Swapnil Jain */
#include<stdio.h>
void xgets(char *);
void xputs(char *);
int main()
{
char str[25];
xgets(str);
printf("\n");
xputs(str);
return 0;
}
void xgets(char *a)
{
printf("Enter string\n");
while(1)
{
scanf("%c",a);
if(*a != '\n')
a++;
else
break;
}
a = '\0';
}
void xputs(char *a)
{
while(1)
{
printf("%c",*a);
if(*a != '\0')
a++;
else
break;
}
}
Run Code Online (Sandbox Code Playgroud)
输入字符串:
Hello how are you
Run Code Online (Sandbox Code Playgroud)
输出字符串:
Hello how are you …Run Code Online (Sandbox Code Playgroud) c ×2