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

检测点7-10

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-7 19:24:31 | 显示全部楼层 |阅读模式
检测点7-10

1.若一个对象的类型是指向float的指针,则它指向的那个对象的类型是什么?
答:float

2.若一个对象的类型是指向“指向char的指针”的指针,则它指向的那个对象的类型是什么?
答:指向char的指针(char *)

3.在源文件c0707.c中,对象x、p和pp的类型名是什么?语句S3中的表达式x、* p和* * pp是左值吗?它们是如何转换为数值的?请说明具体的转换过程。
答:对象 x的类型名是int;对象p的类型名是int *;对象pp的类型名是int * *
语句S3里的x、* p和* * pp都是左值。转换过程:
x直接执行左值转换;
* p是p先执行左值转换,一元*作用于转换后的值,得到p所指向的对象,故* p是左值,执行左值转换。
* * pp是pp先执行左值转换,最近的一元*作用于转换后的值,得到pp所指向的对象,故* pp是左值,执行左值转换,得到pp所指向的那个对象的值,是指针。最左侧的一元*作用于这个值,得到被指向的对象,故* * pp是左值,执行左值转换。

4.下面是一个程序,f函数的功能通过形参pp递增对象x的值并打印递增后的新值,请在下画线上填写适当的表达式以实现该功能。
# include <stdio.h>

void f (int * * pp)
{
    printf ("%d\n", _++ * * pp_);
}

int main (void)
{
    int x = 1089, * p = & x, * * pp = & p;
    f (_pp_);
}
注:第二个空白填写& p也是可以的。

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

本版积分规则

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

GMT+8, 2026-3-30 17:55 , Processed in 0.237874 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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