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

检测点8-6

[复制链接]

620

主题

336

回帖

1057

积分

管理员

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

1.简述C语言引入指针运算的意义。
答:指针运算的意义在于:
如果一个指针指向数组的第i个元素,在数组足够大的情况下,将这个指针和一个整数n相加,其结果是一个新的指针,指向数组的第i+n个元素。
相反地,如果一个指针指向数组的第i个元素,在数组足够大的情况下,将这个指针和一个整数n相减,其结果是一个新的指针,指向数组的第i-n个元素。
如果一个指针指向数组的某个元素,另一个指针指向同一个数组的另一个元素,则这两个指针相减的结果是上述两个元素下标的差值。

2.请分析下面的代码有什么问题:
signed char sc [8];
long int * p = & sc [0];
答:表达式& sc [0]的类型是指向signed char的指针,而对象p的类型是指向long int的指针,类型不匹配,不能初始化。

3.选择填空,给定以下代码片段:
signed char sc [8], * p = & sc [0];
long int la [8], * q = & la [0];
p ++;                //S1
q ++;                //S2
语句S1执行后,对象p所指向的内存位置同原来相比,移动了_A_字节的空间?语句S2执行后,对象q的值所指向的内存位置同原来相比,移动了_D_字节的空间?
A.1                B.2                C.8                D.sizeof (long int)

4.修改源文件c0805.c中的for语句,要求在访问数组元素时使用运算符+=。
参考答案:
# include <stdio.h>
# include <stddef.h>

int main (void)
{
    int a [] = {205, 377, 69, 3, 5678,}, * p = & a [0];

    for (size_t x = 0; x < sizeof a / sizeof a [0]; x ++)
        printf ("%10d", * (p += 1));

    printf ("\n");
}


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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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