结构';s变量值在c中自动更改
我在main函数中用7初始化了q.size,然后它首先将q.size的值打印为7,但在scanf()语句之后,q.size的值变为0。为什么会发生这种情况以及如何解决它结构';s变量值在c中自动更改,c,C,我在main函数中用7初始化了q.size,然后它首先将q.size的值打印为7,但在scanf()语句之后,q.size的值变为0。为什么会发生这种情况以及如何解决它 #include <stdio.h> #include <stdlib.h> struct sample { int size; int rear; int front; }; int main() { struct sample q; q.size=7;
#include <stdio.h>
#include <stdlib.h>
struct sample
{
int size;
int rear;
int front;
};
int main()
{
struct sample q;
q.size=7;
char Ans;
printf("%d\n",q.size);
printf("Enter character : (y/n)");
scanf("%s",&Ans);
printf("%d",q.size);
return 0;
}
#包括
#包括
结构样本
{
整数大小;
内部后部;
内锋;
};
int main()
{
结构样本q;
q、 尺寸=7;
查尔安斯;
printf(“%d\n”,q.size);
printf(“输入字符:(是/否)”;
scanf(“%s”、&Ans);
printf(“%d”,q.size);
返回0;
}
scanf()之后q.size的预期结果为7
实际结果是0您正在将字符串
%s
读入char
变量,这会导致内存损坏。要读取字符,必须将%c
放入scanf
而不是%s
中。您正在将字符串%s
读入char
变量中,这会导致内存损坏。您必须将%c
置于scanf
而不是%s
中才能读取字符。哪种语言?哪种语言?