printf(时差程序)中的引用问题



我学习C++,指针/参考,一些基本的东西。我做了一个小程序来计算两次之间的差异。我的程序工作正常,但我不知道为什么当变量前有 & 符号时,它会在末尾返回一个像 123123123:53442344 这样的大值。有我的程序代码

#include <iostream> 
#include <stdio.h>
int main() {
int userHour, userMinutes;
printf_s("Enter first hour: ");
scanf_s("%d:%d", &userHour, &userMinutes);
int difference = userHour * 60 + userMinutes;
printf_s("Enter second hour: ");
scanf_s("%d:%d", &userHour, &userMinutes);
difference = abs(difference - (userHour * 60 + userMinutes));
userHour = difference / 60;
userMinutes = difference % 60;
printf("Difference is %02d:%02dh", &userHour, &userMinutes);
}

问题出在最后一行代码中,我在调试器或Google中找不到答案(inb4我在编程方面很新手,请告诉我如何寻找答案:((

&userHour的意思是给我一个指向userHour内存地址的指针。因此,printf 将打印该内存地址的值。(请注意,不是存储在该地址的内存中的值,而是内存地址本身的数值。

你想要printf("Difference is %02d:%02dh", userHour, userMinutes);.