单选题
1、第131题 (1.0分) 题号: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` 是一个整型指针变量,它存储的是变量 `a` 的地址。即 `point` 的值等于 `&a`。
* `&a` 表示变量 `a` 在内存中的地址。
* `*point` 表示访问指针 `point` 指向的内存单元的值,即 `a` 的值(也就是 4)。
我们需要找出**所有项都代表地址**的选项。
### 2. 逐项解析
**A. `a`, `point`, `*&a`**
* `a`:这是变量 `a` 的**值**(即 4),不是地址。
* `point`:这是指针变量,其内容是 `a` 的**地址**。
* `*&a`:`&a` 是 `a` 的地址,`*` 对地址进行解引用,得到的是该地址处的值,即 `a` 的**值**(4)。
* **结论**:包含非地址项,错误。
**B. `&*a`, `&a`, `*point`**
* `&*a`:这个表达式在语法上通常是错误的或者无意义的,因为 `a` 是 `int` 类型,不能直接对非指针类型使用 `*` 解引用运算符(除非强制转换,但这里显然不是)。即使假设某种上下文,`*point` 也是关键判断点。
* `&a`:这是 `a` 的**地址**。
* `*point`:`point` 指向 `a`,所以 `*point` 等价于 `a`,即 `a` 的**值**(4),不是地址。
* **结论**:包含非地址项,错误。
**C. `*&point`, `*point`, `&a`**
* `*&point`:`point` 本身是一个地址值(指针),`*` 解引用会得到指针指向的内容吗?不,这里要注意运算顺序和类型。`point` 是指针变量,`&point` 是指针变量本身的地址。`*&point` 等价于 `point`,即 `a` 的**地址**。
* *更正理解*:通常 `*&x` 等价于 `x`。所以 `*&point` 等价于 `point`,即 `a` 的地址。
* `*point`:如前所述,等价于 `a`,是 `a` 的**值**(4),不是地址。
* `&a`:这是 `a` 的**地址**。
* **结论**:`*point` 是值而不是地址,错误。
**D. `&a`, `&*point`, `point`**
* `&a`:取变量 `a` 的地址,结果是**地址**。
* `&*point`:
1. `*point`:解引用指针 `point`,得到的是 `point` 指向的变量,即变量 `a`。
2. `&(*point)`:对变量 `a` 取地址,即 `&a`。
3. 所以 `&*point` 等价于 `&a`,结果是**地址**。
* `point`:指针变量 `point` 中存储的就是 `a` 的地址,所以它代表**地址**。
* **结论**:三项均代表地址,正确。
### 3. 最终答案
综上所述,只有选项 D 中的所有表达式均代表内存地址。
**正确答案:D**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第128题 (1.0分) 题号:125 下列程序的输出结果是()。
单选题
1、第127题 (1.0分) 题号:639 以下能正确定义数组并正确赋初值的语句是()。
单选题
1、第126题 (1.0分) 题号:689 以下叙述中不正确的是()。
单选题
1、第125题 (1.0分) 题号:603 以下符合C语言语法的赋值表达式是()。
单选题
1、第124题 (1.0分) 题号:141 为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
单选题
1、第123题 (1.0分) 题号:601 下面四个选项中,均是不合法的浮点数的选项是()。
单选题
1、第122题 (1.0分) 题号:193 具有相同类型的指针变量p与数组a,不能进行的操作是()。
单选题
1、第121题 (1.0分) 题号:673 C语言规定,函数返回值的类型是由()。
单选题
1、第120题 (1.0分) 题号:173 C语言执行程序的开始执行点是()。
单选题
1、第119题 (1.0分) 题号:686 在位运算中,操作数每右移一位,其结果相当于()。
