代码作用:自己想尝试着写个万年历,结果在自定义类型时就卡住了。
正确时的输入输出:应该在自定义函数内赋值3,主函数打印出3才对。
错误时的输入输出和编译提示:
In function `void chushihua(MOON*)':
base operand of `->' has non-pointer type `DAY'
提示最后一行代码有误。moon->day[1]->week=3;
思考与想法描述: 定义好类型后,原计划写个初始化类型的函数。但发现调用时老提示出 错。我把其他代码都精简掉了,剩下必须的部分,大家帮我看看。
错误的大致范围:主要是嵌套结构后数组下标的问题。
代码全文:
#include<stdio.h>
typedef struct oneday
{
int week;
}DAY;
typedef struct onemoon
{
DAY day[31];
}MOON;
void chushihua(MOON *moon);
int main()
{
MOON moon;
chushihua(&moon);
printf("%d",moon.day[1].week);
getchar();
}
void chushihua(MOON *moon)
{
moon->day[1]->week=3;
}
正确时的输入输出:应该在自定义函数内赋值3,主函数打印出3才对。
错误时的输入输出和编译提示:
In function `void chushihua(MOON*)':
base operand of `->' has non-pointer type `DAY'
提示最后一行代码有误。moon->day[1]->week=3;
思考与想法描述: 定义好类型后,原计划写个初始化类型的函数。但发现调用时老提示出 错。我把其他代码都精简掉了,剩下必须的部分,大家帮我看看。
错误的大致范围:主要是嵌套结构后数组下标的问题。
代码全文:
#include<stdio.h>
typedef struct oneday
{
int week;
}DAY;
typedef struct onemoon
{
DAY day[31];
}MOON;
void chushihua(MOON *moon);
int main()
{
MOON moon;
chushihua(&moon);
printf("%d",moon.day[1].week);
getchar();
}
void chushihua(MOON *moon)
{
moon->day[1]->week=3;
}