#PTRT01. 指针基础理论专项

指针基础理论专项

指针基础理论专项

说明

本题为指针专题理论练习。请根据 C++ 指针基础知识选择最合适的答案。

1. 关于“指针”的说法,正确的是( )。

{{ select(1) }}

  • A. 指针只能存整数
  • B. 指针是存储内存地址的变量
  • C. 指针本身没有类型
  • D. 指针只能用于数组

2. 已知 int a = 10;,表达式 &a 表示( )。

{{ select(2) }}

  • A. a 的值
  • B. a 的地址
  • C. a 的类型
  • D. a 占用的字节数

3. 语句 int *p; 中的 * 表示( )。

{{ select(3) }}

  • A. 乘法
  • B. 解引用
  • C. p 是一个 int 指针变量
  • D. 取地址

4. 下列初始化正确的是( )。

{{ select(4) }}

  • A. int a=5; int *p=&a;
  • B. int a=5; double *p=&a;
  • C. int *p=&10;
  • D. int *p=5;

5. 执行 int a=5; int *p=&a; 后,*p 的值是( )。

{{ select(5) }}

  • A. 0
  • B. 5
  • C. a 的地址
  • D. p 的地址

6. 接上题,执行 *p = 10; 后,a 的值是( )。

{{ select(6) }}

  • A. 5
  • B. 10
  • C. 不确定
  • D. 编译错误

7. 代码 int *p; *p = 5; 的主要问题是( )。

{{ select(7) }}

  • A. p 是空指针
  • B. p 是野指针,未初始化就解引用
  • C. 不能给 *p 赋值
  • D. int 不能使用指针

8. 如果暂时不让指针指向有效对象,C++11 更推荐写( )。

{{ select(8) }}

  • A. int *p = 0.0;
  • B. int *p = nullptr;
  • C. int *p = &0;
  • D. int *p; *p=nullptr;

9. 下列关于 * 的说法正确的是( )。

{{ select(9) }}

  • A. 定义时和使用时含义完全相同
  • B. 定义时表示指针类型,使用时可表示解引用
  • C. 只能出现在指针定义中
  • D. 只能表示乘法

10. 已知 int arr[5]={1,2,3,4,5};,在常见表达式中数组名 arr 与( )对应首元素地址。

{{ select(10) }}

  • A. &arr[0]
  • B. arr[0]
  • C. *arr[0]
  • D. &arr[1]