VC++2010问题(错误:未初始化局部变量)

2024-12-26 01:14:27
推荐回答(2个)
回答1:

int your_age;
int curent_year;
int year_of_birth;
这三个变量没有进行过赋值就直接使用了,所以编译的时候回提示三个警告局部变量未被初始化
并且在本程序中your_age; curent_year; year_of_birth 这三个变量未起到任何作用
可以删除了
程序代码如下:
#include
int main(void)
{
int a,b,c;
printf("Enter your age:\n");
scanf("%d",&a);
printf("Enter curent year:\n");
scanf("%d",&b);
c=b-a;
printf("Your year of birth:\n");
if(c>=1980&&c<=1989) {
printf("You were born in the 80s");
}
return 0;
}
在VC2010 中
F9 打断点 再次F9删除断点 shift + F9 删除所有断点
F5执行程序 启动Debug模式 程序执行过程中 F5 移动到下一个断点
ctrl + F5启动程序不调试
F7 Ctrl + F7编译源代码
F10 单步执行程序

回答2:

这些是基本的概念,你一定要弄懂:

char a[12]; //定义了一个字符数组,数组名称为a,这个时候,a是一个指针,并且是常量类型,在整个数组生存期内其值都是不可改动的。
a = "null"; //这个时候,a是一个常量指针,指向数组的首地址,他的值在数组的生存期都是不可改变的。现在把一个字符串赋值给他,当然是不行的。
*a = "null"; //a本身是一个常量指针,指向数组的首地址,对他进行解引用,得到一个字赋值,此时把一个字符串常量的首地址赋值给他,这个比较无厘头,不谈了。

char *a; //定义了一个字符指针。
a = "null"; //把一个字符串常量赋值给他,也就是把常量"null"的首地址赋值给a,正确。
*a = "null"; //a是一个字符指针,对他进行解引用后,得到的必然是一个单个字符值,把一个字符常量的首地址付给这个字赋值,这个也同样无厘头。

认真考虑考虑。

enjoy!