在下面编译我的代码时,它表示f
未初始化。如何初始化角色以及为什么需要?我的目的是在f
输入并存储c
时结束循环。
#include <stdio.h>
#include <string.h>
int main(void)
{
int count= 0;
char c,f;
printf("Input a character:\n");
do
{
c = getchar();
count++
}while(c!=f);
printf("number of characters: %d", count);
return 0;
}
答案 0 :(得分:3)
f是变量的名称,而不是字符'f'!
您需要初始化char f = 'f';
答案 1 :(得分:2)
您需要初始化变量,因为否则c != f
会将c
与f
变量中恰好存在的不确定值进行比较。
如果您想测试他们是否输入了字母f
,您应该与文字进行比较,而不是变量。
do {
c = getchar();
count++;
} while (c != 'f');
答案 2 :(得分:0)
如何初始化角色?
初始化变量时,不会初始化字符。
为什么我需要?
当声明局部变量时,此变量在堆栈上分配,它的值是堆栈中该位置的当前值(即垃圾)。
因此,您需要为该变量设置一个值,以避免程序的未定义行为。在您的特定情况下,此值为:'f'。单引号表示f是一个字符,这是您的变量(char)所期望的数据类型。