找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 73|回复: 0

检测点8-14

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-7 19:41:53 | 显示全部楼层 |阅读模式
检测点8-14

1.对于以下声明:
int a [], b [sizeof (int) * 10], c [40];
float d [], e [40];
请问:哪些对象的类型是兼容的?b和c的类型在什么条件下是兼容的?
答:a和b、a和c、d和e是兼容的,但b和c只有在int类型的长度为4时才兼容。

2.下例中,指针p1、p2和p3所指向的类型是否兼容?为什么?
int (* p1) [], (* p2) [], (* p3) [22];
答:兼容。因为p1和p2指向的类型相同,都是未指定大小的数组。p3指向的类型是具有常量大小的数组,与未指定大小的数组兼容。

3.对于声明:
int n = 3, a [n], b [n + 1], c [33];
哪些对象的类型是兼容的?
答:a和b、a和c、b和c都是兼容的。

4.表达式sizeof (int [])合法吗?为什么?
答:不合法。sizeof运算符的操作数不能是不完整类型。

5.表达式sizeof (int (*) [])合法吗?为什么?
答:合法。int (*) []是指针,尽管指向的类型不完整,但指针本身是完整类型。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:15 , Processed in 0.223856 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表