单选题
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语言选择判断题库
相关题目
单选题
1、第294题 (1.0分) 题号:165 下列定义数组的语句中正确的是()。
单选题
1、第293题 (1.0分) 题号:685 在位运算中,操作数每左移一位,其结果相当于()。
单选题
1、第292题 (1.0分) 题号:529 在C语言中,调用函数除函数名外,还必须有()。
单选题
1、第291题 (1.0分) 题号:574 若变量已正确定义并赋值,下面符合C语言语法的表达式是()。
单选题
1、第290题 (1.0分) 题号:563 以下叙述中正确的是()。
单选题
1、第289题 (1.0分) 题号:538 位字段数据的单位是()位。
单选题
1、第288题 (1.0分) 题号:137 若给定条件表达式( )?( ):( ),则其中表达式M()。
单选题
1、第287题 (1.0分) 题号:147 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
单选题
1、第286题 (1.0分) 题号:690 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。
单选题
1、第285题 (1.0分) 题号:497 C语言能正确处理的指数是()。
