1 日期问题
描述
已知某天的年月日 求下一天的年月日
代码实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
using namespace std;
//求当前天数的下一天的年月日
void NestDay(int year, int month, int day) {
int dayOfMonth[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//给一个年份 判断是不是闰年
//1 可以被100整除 也可以被400整除 是闰年
//2 不能被100整除 但是可以被4整除 是闰年
//判断是不是闰年
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
//此处 逻辑&&的优先级高于逻辑||
dayOfMonth[2] = 29;
}
else {
dayOfMonth[2] = 28;
}
day++;
//看加完以后的天数 有没有超过这个月的上限值
if (day > dayOfMonth[month]) {
day = 1;//日回归到1
month++;//月份往后走了一个月
}
//看加完以后的月数 有没有超过月份的上限值
if (month > 12) {
month = 1;
year++;
}
printf("NextDay:%d %d %d", year, month, day);
}
int main() {
int year = 2020;
int month = 12;
int day = 31;
NestDay(year, month, day);
return 0;
}
函数调用 与 函数栈帧
值传递
main函数有三个变量 year month day 调用了NextDay函数 在新的内存空间中对这三个变量进行复制 新的空间内变量的值发生改变 main函数空间内的原始数据并不会发生改变
当NextDay函数return时 栈帧就会销毁 调用的时候才分配空间
引用
被调函数使用引用作为参数 就是按引用传递
&符号出现在定义 和 形式参数中 才表示引用的意思 在其他地方表示取地址
)]
引用
被调函数使用引用作为参数 就是按引用传递
&符号出现在定义 和 形式参数中 才表示引用的意思 在其他地方表示取地址