gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:43:05 30 4
gpt4 key购买 nike

我学习 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);

关于c++ - printf中引用的问题(时差程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58474433/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com