MST

星途 面试题库

面试题:C语言指针关系运算的基本理解

假设有两个指针 `int *p1` 和 `int *p2`,它们指向同一块连续的 `int` 型数组内存区域。请说明 `p1 < p2` 这种关系运算的含义是什么?在什么情况下该表达式为真?
13.1万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 关系运算含义
    • p1 < p2 这种关系运算比较的是指针 p1p2 所指向内存地址的大小。在 C 和 C++ 语言中,指针本质上是一个内存地址值,这种比较就是对两个内存地址值进行大小比较。
  2. 表达式为真的情况
    • 当指针 p1 所指向的内存地址在指针 p2 所指向的内存地址之前时,表达式 p1 < p2 为真。例如,在同一块连续的 int 型数组内存区域中,如果 p1 指向数组中靠前的元素,而 p2 指向数组中靠后的元素,那么 p1 < p2 为真。假设数组定义为 int arr[10];p1 = &arr[3];p2 = &arr[5];,此时 p1 指向的地址小于 p2 指向的地址,p1 < p2 表达式为真。