1163028233 发表于 2021-5-31 21:34:32

求问指针问题

#include<stdio.h>
int main(){
    int a=0,*ptr;
    ptr=&a;
    *ptr=3;
    a=(*ptr)++;
    printf("%d,%d\n",a,*ptr);
}
这个程序输出为啥是3,3
书上说是4,4因为定义整型变量a=0与指针ptr,使指针指向变量a.对指针指向的变量进行赋值a=3,将指针所指向变量加1,并赋值给a=4,此时指针依然指向变量a,输出a与指针指向的变量值:4,4

万千只cnm 发表于 2021-5-31 22:56:06

编译器差异吧
这题目没什么意义

zz学编程 发表于 2021-5-31 23:02:29

a=(*ptr)++;
先进行赋值运算
赋值后a的值就是3
由于ptr指针指向a
所以取值操作*ptr也是3
(个人理解,仅供参考)

chxchxkkk 发表于 2021-6-1 09:25:30

后缀++和前缀++的概念理解一下。
页: [1]
查看完整版本: 求问指针问题