
当提示没有初始化时,通常是因为在声明一个变量后,没有给它一个初始值,导致该变量的值为未知。
在输入字符串时,程序会试图访问该变量的值,但由于没有初始化,该变量的值是未知的,因此会提示没有初始化。
为了解决这个问题,需要在声明变量时赋一个初始值,或者在使用该变量之前给它一个值。这样可以确保变量的值是已知的,避免出现未定义的行为。
同时,编写良好的代码也应该遵循良好的编程习惯,尽可能避免出现未初始化的变量。
c字符串的初始化问题:
char *str = (char*)malloc(sizeof(char)*10);
for(int i = 0; i < 7; i++)
str[i] = '#';
printf(“%s ", str);
上面的代码中,只初始化了前7个位置,后面的3个没有初始化,所以输出后面的3个字符会随机初始化,会出现乱码现象。
正确的做法是在第8个字符的位置赋值为“ ”,这样才会只输出前7个字符。
而用scanf()给c字符串赋初值时不用在最后一个字符后加“ ”,因为scanf()会在最后一个字符后自动加上“ ”,但是当我们不用scanf()函数初始化时,必须要在后面加上“ ”。或者也可以用memset()函数将所有字符都初始化为‘ ’。
用字符数组时也一样。