问题描述
- 怎么理解指针运算符"*"和自增"++"的应用?
-
例:int a[5]={11,22,33,44,55};
int p=a;
printf("*p++ = %dn",*p++);
printf("++p = %dn",*++p);
上面的例子,输出结果都不一样,但它们优先级都是自右向左结合,该怎么理解?请大神指点迷津,感谢!!!!
解决方案
这个问题主要还是理解 ++ 的功能,与 * 与 ++ 的执行优先级。
++ 在后是先执行,再加一;而在前是先加一,再执行。
解决方案二:
*p++返回的是自增前的值
*++p返回的是之后的值
解决方案三:
p++是先用后加
++p是先加后用
解决方案四:
p++第一次用的值是p的值
++p第一次用的值是p的值加1
然后再进行指针运算
时间: 2025-01-21 11:52:46