求问指针问题
#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 编译器差异吧
这题目没什么意义 a=(*ptr)++;
先进行赋值运算
赋值后a的值就是3
由于ptr指针指向a
所以取值操作*ptr也是3
(个人理解,仅供参考) 后缀++和前缀++的概念理解一下。
页:
[1]