AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、〖第5题〗705) 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。

A
 a,point,*&a
B
 &*a,&a,*point
C
 *&point,*point,&a
D
 &a,&*point,point

答案解析

正确答案:D

解析:

这是一道关于 C 语言指针基础概念的题目,主要考察对**变量值**、**地址**、**指针变量**以及**取地址运算符 `&`** 和 **解引用运算符 `*`** 的理解。 ### 1. 题目分析 已知条件: ```c int *point, a = 4; point = &a; ``` - `a` 是一个整型变量,值为 4。 - `point` 是一个指向整型的指针变量。 - `point = &a;` 表示将变量 `a` 的地址赋值给指针 `point`。 - 此时,`point` 的值就是 `a` 的地址(即 `&a`)。 - `*point` 表示访问 `point` 所指向的内存单元的值,即 `a` 的值(4)。 我们需要找出**所有项都代表地址**的选项。 ### 2. 逐项解析 #### A. `a`, `point`, `*&a` - `a`:这是整型变量,代表的是**值**(4),不是地址。 - `point`:这是指针变量,其存储的内容是 `a` 的地址,所以它代表**地址**。 - `*&a`: - `&a` 取 `a` 的地址。 - `*(&a)` 对该地址进行解引用,得到的是该地址中存储的值,即 `a` 的值(4)。 - 所以 `*&a` 代表的是**值**。 - **结论**:包含非地址项,错误。 #### B. `&*a`, `&a`, `*point` - `&*a`:**语法错误**。`*` 运算符只能作用于指针类型,而 `a` 是 `int` 类型,不能直接对 `a` 进行解引用操作(`*a` 非法)。即使假设这里想表达其他意思,在标准 C 语言中这也是无效的。 - `&a`:取 `a` 的地址,代表**地址**。 - `*point`:解引用指针 `point`,得到的是 `point` 指向的值,即 `a` 的值(4),代表**值**。 - **结论**:包含非地址项且存在语法问题,错误。 #### C. `*&point`, `*point`, `&a` - `*&point`: - `&point` 取指针变量 `point` 自身的地址。 - `*(&point)` 对该地址解引用,得到的是 `point` 变量本身存储的内容,即 `a` 的地址。 - 虽然结果是一个地址值,但通常我们看这一项的类型和含义。不过让我们先看下一项。 - `*point`:解引用 `point`,得到的是 `a` 的值(4),代表**值**。 - `&a`:代表**地址**。 - **结论**:因为 `*point` 是值,所以该组不全为地址,错误。 #### D. `&a`, `&*point`, `point` - `&a`:取变量 `a` 的地址,代表**地址**。 - `&*point`: - `*point` 先解引用,得到 `a` 的值所在的内存单元(左值概念上等同于 `a`)。 - `&(*point)` 再对这个单元取地址。 - 因为 `point` 指向 `a`,所以 `*point` 等价于 `a`,那么 `&*point` 就等价于 `&a`。 - 所以 `&*point` 代表**地址**。 - `point`:指针变量 `point` 中存储的就是 `a` 的地址,所以 `point` 本身代表**地址**。 - **结论**:三项均代表地址,正确。 ### 3. 最终答案 综上所述,只有选项 D 中的三个表达式均代表地址。 **正确答案:D**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码