C语言指针比较运算

指针比较运算

C语言的指针与指针之间进行比较运算需要一个前提,即这两个指针指向的变量是相关的,比如指向同一个数组中不同的元素的内存地址,而C语言中的数组存储的元素的类型是一致的。其中,指针与指针进行比较所运用的运算符还是C语言中的那些比较运算符,比如>、<、==等符号。

pointer1 比较运算符 pointer2

提示:C语言指针之间比较的是内存地址的大小,而不是数组中元素值的大小,具体可参考下方的实例。

提示:C语言中并没有内置的布尔类型,比较运算符的返回值一般为“真”和“假”,而且一般以数字表示,比如非零整数和零等等。

指针比较运算实例代码

下方实例中定义了一个数组,并使用两个指针分别指向该数组中的两个不同的元素的内存地址,然后进行比较,其返回值使用一个int类型的变量存储,并用于if条件判断(从输出的结果可知,指针之间的比较并不是数组元素值的大小):

#include <stdio.h>

int main() {
    int x[3] = {3,2,1};
    int *p1 = &x[0];
    int *p2 = &x[1];
    int y = p1 < p2;
    if(y){
        printf("这是true\n");
        printf("%d\n",y);
    }
    return 0;
}

代码编译运行,得到输出:

这是true
1

免责声明:内容仅供参考,不保证正确性。


全栈后端 / C语言教程 :


















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.