面试题答案
一键面试#include <iostream>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
int sum = 0;
for (int i = 0; i < 5; ++i) {
sum += *(ptr + i);
}
std::cout << "数组元素总和为: " << sum << std::endl;
return 0;
}
指针在这个过程中的作用
指针ptr
指向数组arr
的起始地址,通过指针可以间接访问数组元素。它提供了一种灵活的方式来操作数组,相比于使用数组下标,指针有时可以让代码在某些场景下更简洁高效。
指针算术运算的原理
在代码*(ptr + i)
中,ptr + i
表示指针ptr
向前移动i
个int
类型大小的内存单元。因为ptr
指向int
类型,所以每移动一个单位,实际上是移动了sizeof(int)
字节的内存空间。然后通过*
解引用操作符获取移动后指针所指向的内存地址中的值。