《明解C语言》笔记及课后习题答案 【第十章】

本文是《明解C语言》第十章的学习笔记,涵盖了指针的基础概念,如值传递、对象地址、取址运算符及int型变量。讲解了指针变量如何保存对象地址,以及指针运算符的使用。还讨论了空指针和NULL的概念,并对比了指针和数组的异同,特别是指针运算符与下标运算符的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习10-1

/*---编写函数adjust_point,如果n指向的值小于0,就将其改为0;如果值大于100,
就将其改为100(如果是0~100的值,则不修改)。---*/

#include <stdio.h>

void adjust_point (int *n) {
	if (*n < 0)		*n = 0;
	if (*n > 100)	*n = 100;
} 

int main (void)
{
	int n;
	
	puts("请输入一个整数:");
	scanf("%d",&n);
	
	adjust_point(&n);
	
	printf("%d",n);
	
	return 0;
}

练习10-2

/*---将 *y 年 *m 月 *d 日的日期,修改为其前一天或后一天的日期。---*/

/*---本程序思路应该先思考特殊时期并做特殊处理,如月初和月末则需要额外对日期和月份同时做特殊处理。---*/ 

#include <stdio.h>

int years(int *y) {		//返回闰年 
	int i = 0;
	if ((*y) % 400 == 0 || ((*y) % 100 != 0 && (*y) % 4 == 0))
		i = 1;
	return i;
}

int day(int y, int m) {			//返回各月份的天数。 
	int i = 0;
	switch (m) {
		case 4: 
		case 6:
		case 8:
		case 11: i = 30; break;
		case 2: if (years(y)) i = 29;	else i = 28; break;
		default : i = 31; break;
	}
	return i;
}

void decrement_date(int *y
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值