#include<iostream.h>
int hour,minute;
void IncTime(int hour,int minute)
{
minute++;
if (minute>=60)
{
minute =0;
hour++;
if (hour>=24)
hour=0;
}
::hour=hour;
::minute=minute;
}
void main()
{
int hour =4;
int minute=59;
IncTime(4,3);
hour=::hour;
minute=::minute;
cout<<"the time is "<<hour<<":"<<minute<<endl;
}
答案市什么呀。。。。。为什么。。。
谢了 。。。。
8 个解决方案
#1
hour=4,minute=0
#2
the time is 4:00
#3
the time is 4:4 main函数中前面对hour, minute定义,在后面这两个变量又被重新赋值了
#4
the time is 4:4
#5
4:4
因为::是读全局的hour 和 minute.
因为::是读全局的hour 和 minute.
#6
the time is 4:4
原因很简单,只要记住在变量前加::运算符表示这个变量用的是全局声明的那一个。如:你的代码在开始就有hour,minute的全局声明,但在main和inctime中又都用到了这两个同名的变量,为了编译器区分你所用的变量,可以在变量名前加::,以示这是全局的那一个。当4和3传给inctime后,由于没能满足if的条件,所以if的内嵌语句都没有执行。然后将这两个局部变量的值给了与他们同名的两个全局变量。完了以后回到main在把这两个全局变量的给与他同名的两个局部变量。最后输出这两个局部变量的数值!
原因很简单,只要记住在变量前加::运算符表示这个变量用的是全局声明的那一个。如:你的代码在开始就有hour,minute的全局声明,但在main和inctime中又都用到了这两个同名的变量,为了编译器区分你所用的变量,可以在变量名前加::,以示这是全局的那一个。当4和3传给inctime后,由于没能满足if的条件,所以if的内嵌语句都没有执行。然后将这两个局部变量的值给了与他们同名的两个全局变量。完了以后回到main在把这两个全局变量的给与他同名的两个局部变量。最后输出这两个局部变量的数值!
#7
4:4,因为::访问的是全局的hour和minute,显然全局的hour和minute只有在函数中被修改,其它地方并没有影响它们
#8
看到各位大侠我就知道了。。。是答案错了。。。。着本烂书。。。气死我了。。。。各位买书要小心了。。。。。。。
#1
hour=4,minute=0
#2
the time is 4:00
#3
the time is 4:4 main函数中前面对hour, minute定义,在后面这两个变量又被重新赋值了
#4
the time is 4:4
#5
4:4
因为::是读全局的hour 和 minute.
因为::是读全局的hour 和 minute.
#6
the time is 4:4
原因很简单,只要记住在变量前加::运算符表示这个变量用的是全局声明的那一个。如:你的代码在开始就有hour,minute的全局声明,但在main和inctime中又都用到了这两个同名的变量,为了编译器区分你所用的变量,可以在变量名前加::,以示这是全局的那一个。当4和3传给inctime后,由于没能满足if的条件,所以if的内嵌语句都没有执行。然后将这两个局部变量的值给了与他们同名的两个全局变量。完了以后回到main在把这两个全局变量的给与他同名的两个局部变量。最后输出这两个局部变量的数值!
原因很简单,只要记住在变量前加::运算符表示这个变量用的是全局声明的那一个。如:你的代码在开始就有hour,minute的全局声明,但在main和inctime中又都用到了这两个同名的变量,为了编译器区分你所用的变量,可以在变量名前加::,以示这是全局的那一个。当4和3传给inctime后,由于没能满足if的条件,所以if的内嵌语句都没有执行。然后将这两个局部变量的值给了与他们同名的两个全局变量。完了以后回到main在把这两个全局变量的给与他同名的两个局部变量。最后输出这两个局部变量的数值!
#7
4:4,因为::访问的是全局的hour和minute,显然全局的hour和minute只有在函数中被修改,其它地方并没有影响它们
#8
看到各位大侠我就知道了。。。是答案错了。。。。着本烂书。。。气死我了。。。。各位买书要小心了。。。。。。。