gpt4 book ai didi

C 程序保留列出地址而不是不存在指针的值

转载 作者:行者123 更新时间:2023-11-30 19:34:37 25 4
gpt4 key购买 nike

我正在创建一个代码来将今天的日期与结构中的日期数组进行比较。每次我尝试打印日期时,我都会返回地址而不是实际值本身。

#include <stdio.h>
struct date {
int month[2];
int day[2];
int year[4];
};

int cmpDate(struct date date1, struct date date2)
{
if (date1.year > date2.year)
return 1;
if (date1.year < date2.year)
return -1;
if (date1.year == date2.year)
{
if (date1.month > date2.month)
return 1;
if (date1.month < date2.month)
return -1;
if (date1.month == date2.month)
{
if (date1.day > date2.day)
return 1;
if (date1.day < date2.day)
return -1;
if (date1.day == date2.day)
return 0;
}
}
};

struct date list[10] = { { 12, 3, 2016 },
{ 12 , 8 ,2012 },
{ 9, 3, 2016 },
{ 11, 7, 2012 },
{ 11, 7, 2020 },
{ 11, 7, 2016 },
{ 8, 1, 2017 },
{ 12, 29, 2017 },
{ 10, 1, 2018 } };

int main(void)
{
struct date today;
int i;
int j = 0;

printf("Enter todays date in the following format: MM DD YYYY:\n");
scanf_s("%d %d %d", today.month, today.day, today.year);
printf("\n");

for (i = 0; i < 10; i++)
{
printf("%d %d %d\n", list[i].month, list[i].day, list[i].year);
printf("%d %d %d\n", today.month, today.day, today.year);
printf("%d\n", j);
}

}

代码编译得很好,但这是我调试时得到的结果:

Enter todays date in the following format: MM DD YYYY:
04 25 2017

14979072 14979080 14979088
9435988 9435996 9436004
0
14979104 14979112 14979120
9435988 9435996 9436004
0
14979136 14979144 14979152
9435988 9435996 9436004
0
14979168 14979176 14979184
9435988 9435996 9436004
0
14979200 14979208 14979216
9435988 9435996 9436004
0
14979232 14979240 14979248
9435988 9435996 9436004
0
14979264 14979272 14979280
9435988 9435996 9436004
0
14979296 14979304 14979312
9435988 9435996 9436004
0
14979328 14979336 14979344
9435988 9435996 9436004
0
14979360 14979368 14979376
9435988 9435996 9436004
0
Press any key to continue . . .

J 只是我要调用函数 cmpDate 的占位符,所以现在它并不重要。谁能帮我打印这个值,而不是地址?

谢谢。

最佳答案

因为结构体的成员是数组,引用它们的名称(例如list[i].day)实际上会产生指向数组的指针。您需要引用数组中的每个元素单独在 printf 函数中打印所有数字。

关于C 程序保留列出地址而不是不存在指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622083/

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