#include<stdio.h> main() { int arr[ ]={30,25,20,15,10,5}, *p=arr; p++; printf(“%d\n”,*(p+3)); }
运行结果为:
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
程序分析
数组初始化:
int arr[] = {30, 25, 20, 15, 10, 5}; // 索引: 0 1 2 3 4 5 // 值: 30 25 20 15 10 5
指针运算过程
int *p = arr; // p 指向 arr[0] = 30 p++; // p 现在指向 arr[1] = 25
内存布局
arr[0] = 30 arr[1] = 25 arr[2] = 20 arr[3] = 15 arr[4] = 10 arr[5] = 5
计算过程
p
arr = 30
p++
arr = 25
*(p + 3)
运行结果
10
j
原因
p=arr 让 p 指向 arr[0](值 30)。
p=arr
arr[0]
p++ 之后 p 指向 arr[1](值 25)。
arr[1]
*(p+3) 就是 arr[4],值为 10。
*(p+3)
arr[4]
15
登录后提交答案