小编tuh*_*nda的帖子

即使增加地址后,指针的值也如何相同,对于变量而言,其值是不同的

在下面的程序中,对于不同的指针操作,我将获得相同的值:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

int main(void) {
    int i;
    int *ptr = (int *)malloc(5 * sizeof(int));

    for (i = 0; i < 5; i++)
        *(ptr + i) = i;

    printf("%d ", *ptr++);
    printf("%d ", (*ptr)++); 
    printf("%d ", *ptr); ---------> o/p: 2
    printf("%d ", *++ptr);--------> o/p: 2
    printf("%d ", ++*ptr);
}
Run Code Online (Sandbox Code Playgroud)

输出: 0 1 2 2 3

我的疑问是如何*ptr以及*++ptr在打印相同的值。随着我们增加指针地址,它应该有所不同

我能理解的变量的后增量和前增量,这里都是前增量

c pointers

2
推荐指数
1
解决办法
49
查看次数

标签 统计

c ×1

pointers ×1